2 일이 지났으므로이 경우 알아낼 수 없습니다.MSSQL 업데이트가 작동하지만 INSERT가 실패합니다.
PHP 5.5 ans MSSQL을 사용하고 있는데,이 테이블에서 업데이트가 작동하고 다른 테이블에서 같은 삽입이 작동하는 반면 일부 테이블에는 삽입 할 수없는 것 같습니다.
물론 내 사용자가이 테이블에 대한 올바른 권한을 갖고 있는지 확인했습니다.
여기// Establish connection
try {
$pdo = new PDO(DSN, UID, PWD);
} catch (PDOException $e) {
die("Error! ".$e->getMessage());
}
$pdo->beginTransaction();
// Merge-like event
try {
$updateStmt->execute();
$rows = $updateStmt->rowCount();
if($rows == 0) {
$insertStmt->execute();
}
} catch (Exception $e) {
$pdo->rollBack();
die("Error! ".$e->getMessage());
} finally {
$insertHistoryStmt->execute();
$pdo->commit();
}
내 모든 PDO 문 객체는 적절한 값으로 보정한다은 ... 나는 바보 야 아마 코드입니다. INSERT에서 오류가 발생하지 않은 것은 DB에서 실행 된 적이없는 것 같습니다.
이해하기 위해 더 많은 코드가 필요한지 물어보십시오. 전체 코드를 여기에 입력하고 "내 작업을 수행하십시오"라고 말하지는 마십시오.
덕분에 나는 정말 붙어있어 :
기본적으로 pdo는 실패시 부울 false를 반환합니다. 명시 적으로 예외를 설정하지 않는 한 초기 연결 시도에서만 예외가 발생합니다. 따라서 try/catch는 쓸모가 없습니다. 거기에서 수행하는 작업 중 아무 것도 예외를 throw하지 않기 때문입니다. –
예외를 발생 시키려면 PDO를 설명한 [여기] (https://phpdelusions.net/pdo#errors)로 구성하면됩니다. 또한 수동으로 script를 죽이는 대신 예외를 다시 throw해야합니다. –
감사합니다. 내일 아침에 앱을 푸시해야한다. 좋은 저녁을 보내십시오. – Ben