{
$dsn="mysql:host=localhost;dbname=dadao;port:3366";
$pdo ::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$pdo- >begintransaction(); ;prepare( $sql);
$stmt->execute(array(':username'=>'insert title1'));
$stmt->execute(array(':username'=>NULL) ); $pdo->commit();
} catch (Exception $e) {
echo 'トランザクション例外、今すぐロールバック'; $e->getMessage(); $ pdo->rollBack();
}
単純なトランザクション コードでは、データベース テーブル user のユーザー名を空にすることはできません。ヒント: トランザクションは異常です。ロールバックします。列 'username' を null1 にすることはできません。データベース テーブルは書き込まれません。ただし、$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); を削除すると、プロンプトは表示されず、レコードがデータベースに挿入されます。 $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); このコード行は間違ったプロンプト メソッドを設定しているのではないでしょうか?
ディスカッションへの返信 (解決策)
はい、エラー処理メソッドを設定するためです
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); なしで
試してみてくださいcatch 構造は無効になります $pdo->rollBack(); は実行されません