mysql delete문 성공여부 확인방법이있을까요?
본문
DELETE문을 사용해서 삭제가 완료되면 특정행동을 하고싶은데
성공여부 확인방법이 있을까요?
답변 4
http://php.net/manual/kr/mysqli.query.php
여기를 보시면
쿼리를 수행후 오류가 존재시 print를 시키는 구문이 있습니다
작동방법이
리턴값 자체가
존재할때 성공이 없으면 오류로 판단하는 구조입니다.
실제 그누보드의 공통함수인
sql_qeury 구문을 찾아보면
function sql_query($sql, $error=G5_DISPLAY_SQL_ERROR, $link=null) {
....
$result = @mysqli_query($link, $sql) or die("<p>$sql<p>" . mysqli_errno($link) . " : " . mysqli_error($link) . "<p>error file : {$_SERVER['SCRIPT_NAME']}");
와 같은 형태로 된것 확인할수있습니다.
오류가 발생시 에러를 출력합니다.
또다른 확인방법으로는
삭제후 해당 Row를 재조회해면 됩니다.
존재하면 비정상적으로 삭제가 안된것이겠죠
http://us.php.net/manual/en/function.mysql-affected-rows.php
쿼리 수행후
printf("Records deleted: %d\n", mysql_affected_rows());
해보시면 따로 select를 하지 않아도 바로 전 쿼리로 인해 몇개의 파일이 적용 되었는지 결과값을 얻을수있습니다.
$sql = " delete... ";
if (sql_query($sql)) {
// 삭제 시
}
이러면 안되나요?
$result = sql_query($sql);
이런식으로 처리후 if($result) 이런식으로 처리 완료시 체크 하는 방법이 있습니다.