私は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は役に立たない。 –
例外をスローするには、[here](https://phpdelusions.net/pdo#errors)の説明に従ってPDOを設定してください。また、手動でスキャンを殺すのではなく、例外を再スローする必要があります。 –
ありがとうございます。私は明日朝にそれをやるつもりだ。今夜は、アプリをプロダクションにプッシュしなければならない。素敵な夜をお過ごしください。 – Ben