Copy
function executeQuery($conn, $sql) {
if (!mysqli_query($conn, $sql))
{
echo "에러: " . $sql . "<br>" . mysqli_error($conn);
exit;
}
}
function insertWorkTime($conn, $zzzz, $time, $ip) {
$insert_sql = "INSERT INTO very_work_time (work_id, work_name, work_group, work_intime, work_outtime, work_datetime, work_ip, work_total, dddd)
SELECT '$data61', work_name, work_group, ('$today $data63') , '', '$time', '$ip', '$zzzz', '0'
FROM very_work_list
WHERE work_id = '$zzzz'";
executeQuery($conn, $insert_sql);
}
function updateWorkOutTime($conn, $id, $time) {
$check_aa_sql = "SELECT id, work_name, work_intime, work_outtime FROM very_work_time WHERE id = '$id' ORDER BY work_datetime DESC LIMIT 1";
$check_aa_result = mysqli_query($conn, $check_aa_sql);
$update_sql = "UPDATE very_work_time SET work_outtime = ('$today $data42') WHERE id = '$id' AND dddd < '$var' ";
executeQuery($conn, $update_sql);
}
$zzzz = $_GET['cccc'];
$time = date("Y-m-d H:i:s");
$today = date("Y-m-d");
$ip = $_SERVER['REMOTE_ADDR'];
$check_sql = "SELECT id, work_name, work_intime, work_outtime FROM very_work_time WHERE work_total = '$zzzz' ORDER BY work_datetime DESC LIMIT 1";
$check_result = mysqli_query($conn, $check_sql);
$result = mysqli_query($conn, "SELECT work_name FROM very_work_list WHERE work_id='$zzzz' ");
$row = mysqli_fetch_array($result);
$data = $row[0];
$data1 = 1;
$data2 = 2;
$data3 = 3;
$data3 = 3;
if ($check_result && mysqli_num_rows($check_result) > 0) {
$row = mysqli_fetch_assoc($check_result);
if (empty($row['work_outtime'])) {
if (updateWorkOutTime($conn, $row['id'], $time)) {
echo $data, "6", $data2; // 작업 성공
} else {
echo $data, "6", $data3; // 작업 실패
}
} else {
if (insertWorkTime($conn, $zzzz, $time, $ip)) {
echo $data, "6", $data1; // 작업 성공
} else {
echo $data, "6", $data3; // 작업 실패
}
}
} else {
if (insertWorkTime($conn, $zzzz, $time, $ip)) {
echo $data, "6", $data1; // 작업 성공
} else {
echo $data, "6", $data3; // 작업 실패
}
}
위와 같이 돌려보면
db에 값은 정상적으로 저장이 되는데... $data3값을 반환합니다.
mysqli_error($conn) 로 출력해보면 쿼리 실패라고 나오네요
db에 값이 저장이 되는거면 쿼리성공이 나와야 하는거아난가요?
저장이 되든 저장이 안되든 쿼리실패라고 나옵니다.
무엇이 잘못 된건지 알려 주세요
답변 2개 / 댓글 1개
채택된 답변
+20 포인트
마르스컴퍼니
2025-04-28 (월) 22:38:36
주요 문제점은 함수들이 값을 반환하지 않고 있는데,
if 조건문에서 이 함수들의 반환값을 확인하는 것입니다.
$data61, $data63, $data42, $var 등은 글로벌 변수로 보이는데,
함수 안에서 사용하려면 글로벌 선언을 해주어야 됩니다.
Copy
<?php
// 쿼리 실행 함수 - 성공/실패 여부를 반환하도록 수정
function executeQuery($conn, $sql) {
if (mysqli_query($conn, $sql)) {
return true; // 쿼리 성공 시 true 반환
} else {
echo "에러: " . $sql . "<br>" . mysqli_error($conn);
return false; // 쿼리 실패 시 false 반환
}
}
// 작업 시간 삽입 함수 - 성공/실패 여부를 반환하도록 수정
function insertWorkTime($conn, $zzzz, $time, $ip) {
global $today, $data61, $data63; // 글로벌 변수 접근
$insert_sql = "INSERT INTO very_work_time (work_id, work_name, work_group, work_intime, work_outtime, work_datetime, work_ip, work_total, dddd)
SELECT '$data61', work_name, work_group, ('$today $data63') , '', '$time', '$ip', '$zzzz', '0'
FROM very_work_list
WHERE work_id = '$zzzz'";
return executeQuery($conn, $insert_sql);
}
// 작업 종료 시간 업데이트 함수 - 성공/실패 여부를 반환하도록 수정
function updateWorkOutTime($conn, $id, $time) {
global $today, $data42, $var; // 글로벌 변수 접근
$check_aa_sql = "SELECT id, work_name, work_intime, work_outtime FROM very_work_time WHERE id = '$id' ORDER BY work_datetime DESC LIMIT 1";
$check_aa_result = mysqli_query($conn, $check_aa_sql);
$update_sql = "UPDATE very_work_time SET work_outtime = ('$today $data42') WHERE id = '$id' AND dddd < '$var' ";
return executeQuery($conn, $update_sql);
}
// 메인 코드
$zzzz = $_GET['cccc'];
$time = date("Y-m-d H:i:s");
$today = date("Y-m-d");
$ip = $_SERVER['REMOTE_ADDR'];
$check_sql = "SELECT id, work_name, work_intime, work_outtime FROM very_work_time WHERE work_total = '$zzzz' ORDER BY work_datetime DESC LIMIT 1";
$check_result = mysqli_query($conn, $check_sql);
$result = mysqli_query($conn, "SELECT work_name FROM very_work_list WHERE work_id='$zzzz' ");
$row = mysqli_fetch_array($result);
$data = $row[0];
$data1 = 1;
$data2 = 2;
$data3 = 3;
if ($check_result && mysqli_num_rows($check_result) > 0) {
$row = mysqli_fetch_assoc($check_result);
if (empty($row['work_outtime'])) {
if (updateWorkOutTime($conn, $row['id'], $time)) {
echo $data, "6", $data2; // 작업 성공
} else {
echo $data, "6", $data3; // 작업 실패
}
} else {
if (insertWorkTime($conn, $zzzz, $time, $ip)) {
echo $data, "6", $data1; // 작업 성공
} else {
echo $data, "6", $data3; // 작업 실패
}
}
} else {
if (insertWorkTime($conn, $zzzz, $time, $ip)) {
echo $data, "6", $data1; // 작업 성공
} else {
echo $data, "6", $data3; // 작업 실패
}
}
?>
답변에 대한 댓글 1개
은빛여전사
2025-04-29 (화) 08:08:27
eyekiss
2025-04-28 (월) 22:39:17
Copy
function executeQuery($conn, $sql) {
if (!mysqli_query($conn, $sql)) {
return false;
} else {
return true;
}
}
답변을 작성하려면 로그인이 필요합니다.
db는 저장이 되고 처리결과값만 실패로 떴었습니다
함수 내부에 있는 변수들이라 글로벌 변수 젹용 안해줘도 잘 작동했었는데
혹시나 해서 글로번별수도 적용해서 해 봤는데... 안되는군요 ㅠㅠ
이것저것 추가해서 해 놓은 것들이 중간에서 꼬이는건지도 모르겠네요 ㅠㅠ