반응형
특정 SQL 오류 코드를 가져오거나 PHP의 PDO로 잠금 시간 초과를 식별하시겠습니까?
저는 실패한 쿼리의 결과를 바탕으로 특정 SQL 실패 조건을 파악하려고 하는데, 이전에 비슷한 작업을 한 사람이 있는지 알고 싶었습니다.
예제 코드에서 테스트 테이블의 행을 잠그고 응답을 처리하려고 합니다.
$sql = " select tt_idno from testtab ".
" where tt_idno = ? for update nowait ";
$testtab_Lock = $db->prepare($sql);
try {
$db->beginTransaction();
$testtab_Lock->execute([1]);
$db->commit();
} catch(Exception $log) {
$db->rollback();
}
문제는 레코드가 잠기면 이 쿼리가 실패할 것으로 예상한다는 점입니다.이상적으로 나는 예외를 다음과 같이 처리하고 싶습니다.
} catch(Exception $log) {
$db->rollback();
if($locked) {
throw new Exception("Locked but everything is fine");
} else {
throw new Exception("Panic");
}
}
PDO의 getCode()에 대한 설명서를 읽고 있었고 그것을 사용하려고 했지만 가깝지만 너무 일반적인 SQLSTATE만 제공합니다.
} catch(Exception $log) {
echo "<span>" . $log->getCode() . "</span><br />";
}
SQLSTATE HY000을 제공하지만 원하는 오류 코드는 1205입니다(MariaDB 설명서 사용 중: https://mariadb.com/kb/en/library/mariadb-error-codes)
SQL Error Code를 얻거나 PHP의 PDO로 Lock Timeout을 식별하는 다른 방법이 있습니까?
메모
저는 MariaDB(10.3)와 PHP(7.2)를 사용하고 있습니다.
언급URL : https://stackoverflow.com/questions/55595553/get-specific-sql-error-code-or-identify-a-lock-timeout-with-phps-pdo
반응형
'programing' 카테고리의 다른 글
| PHP, 계속; for each() { for each() { (0) | 2023.09.09 |
|---|---|
| Mocha API 테스트: 'TypeError: app.address is not function' 가져오기 (0) | 2023.09.09 |
| CSS 자식 대 후손 선택기 (0) | 2023.09.09 |
| css 파일을 넣거나 넣어도 뭐가 달라요? (0) | 2023.09.09 |
| GitHub에서 분기 시각화 (0) | 2023.09.09 |