pdo は prepare を使用して insert を実行し、レコードの追加に失敗しますが、エラーはキャプチャされません。

WBOY
リリース: 2016-06-23 13:30:59
オリジナル
1281 人が閲覧しました

$st = $this->pdo->prepare("$tablename ($field) の値($code) に挿入");
$st->execute($arr); >pdo->errorCode() != '00000')test($this->pdo->errorInfo());
return $this->pdo->lastInsertId();

意図的に空にできないフィールドには null 値が与えられ、上記のコードの実行後にエラーは取得されません (errorCode() も出力 = '00000') が、pdo->lastInsertId() は 0 を返し、データベースを開きます。確認したところ、新しいレコードは正常に追加されませんでした。この種の PDO 前処理 SQL に対してエラー メッセージを取得するにはどうすればよいですか?


ディスカッションに返信 (解決策)

if ($st->errorCode() != '00000') test($st->errorInfo());
ログイン後にコピー


または $this->pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION)
例外処理を使用します

try {  ....  $st->execute($arr);  ....} catch (PDOException $e) {  print "Error!: " . $e->getMessage() . "\n";}
ログイン後にコピー

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート