1. ホーム
  2. php

[解決済み] パラメータ化された SELECT クエリで PDO オブジェクトを正しく使用する方法

2023-06-23 23:54:01

質問

PHP.net の説明に従って SELECT クエリを実行するための PHP.net の指示に従ってみましたが、 これを実行するための最良の方法がわかりません。

私はパラメータ化された SELECT クエリを使用し、可能であれば ID が存在するテーブルで name フィールドがパラメータにマッチするテーブルを探します。これは、1つの ID は一意であるため、1つのを返すはずです。

次に、私はその IDINSERT を別のテーブルにコピーして、それが成功したかどうかを判断する必要があります。

また、再利用のためにクエリを準備することができると読みましたが、これがどのように役立つのかよく分かりませんでした。

どのように解決するのですか?

このようにデータを選択します。

$db = new PDO("...");
$statement = $db->prepare("select id from some_table where name = :name");
$statement->execute(array(':name' => "Jimbo"));
$row = $statement->fetch(); // Use fetchAll() if you want all results, or just iterate over the statement, since it implements Iterator

同じように挿入します。

$statement = $db->prepare("insert into some_other_table (some_id) values (:some_id)");
$statement->execute(array(':some_id' => $row['id']));

エラー時に例外をスローするように PDO を設定することをお勧めします。そうすると PDOException を得ることになります。例外を発生させるようにするには、このメソッドを $db オブジェクトを作成した直後にこれを呼び出します。

$db = new PDO("...");
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);