다음 코드에 대한 PHP 5.4와 5.2.13 간에는 약간의 차이가 있습니까? 그것은 PHP 5.4 (& mysql 5.1.62)와 함께 작동하지만 오류는 표시되지 않고 쿼리가 실행됩니다. 그러나 5.2.13 (& MySQL은 5.1.3.0)은 오류를 표시하지 않습니다 (이 catch 블록에 해당되지 않습니다)하지만 데이터가 데이터베이스에 삽입되지 않습니다와PHP PDO 및 트랜잭션 - PHP 5.4 및 PHP 5.2.13에서의 다른 동작
$db = new PDO(DHOST, DUSER, DPASS, array(PDO::ATTR_PERSISTENT => true, PDO::ATTR_EMULATE_PREPARES => true));
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);
try {
$db->beginTransaction();
$db->exec($insertString);
$db->commit();
} catch (Exception $e) {
try {
$db->rollBack();
throwDbError($handler->errorInfo());
} catch (Exception $e2) {
...
}
}
내가 ommit 경우 beginTransaction
및 commit
인 줄은 PHP 5.2에서도 작동하지만 트랜잭션이 필요합니다. mysql 데이터베이스의 두 테이블 모두 InnoDB를 사용하고 있습니다.
'DB_DAO :: $ db-> setAttribute (PDO :: ATTR_ERRMODE, PDO :: ERRMODE_WARNING);'행은 의심스러워 보입니다. 아마도 5.4 예외 오류 모드를 사용하고 있습니까? –
죄송합니다. 이전 코드 단편 – ladar