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