>> PHP入門トップに戻る
今回はPDOでinsert文を実行する方法を説明します。
以下のようなテーブルを準備してください。
プリペアドステートメントについては「PDO プリペアドステートメント」を参照してください。
基本的にはselect文を実行する時と一緒で以下の様な流れになります。
ここにbindValueでセットした値が入り、実行されることになります。
executeメソッドは成功した場合はTRUE、失敗時はFALSEを返します。
execメソッドでinsert文実行
プリペアドステートメントを使わない場合はPDOオブジェクトの「execメソッド」でinsert文を実行します。
以下のコードを見てください。
PDOオブジェクトのexecメソッドでinsert文を実行した場合はデータ挿入件数が戻り値として返って来ます。
この戻り値で登録件数を表示したり、処理を分岐させたりできるので覚えておくと良いと思います。
ただこちらはプリペアドステートメントを使ってないので、挿入するデータのエスケープや引用符で囲む処理などは自分で実装する必要があります。
そこだけ注意してください。
>> 【PDO delete文実行】に進む
>> PHP入門トップに戻る
PDO insert文実行
以下のようなテーブルを準備してください。
mysql> select * from test; +----+------+------+ | id | num | name | +----+------+------+ | 1 | 1 | AAA | | 2 | 10 | BBB | | 3 | 100 | CCC | | 4 | 1000 | DDD | +----+------+------+まずはプリペアドステートメントを使った方法です。
プリペアドステートメントについては「PDO プリペアドステートメント」を参照してください。
基本的にはselect文を実行する時と一緒で以下の様な流れになります。
PDOオブジェクトの作成
↓
prepareメソッドでSQL文をセット
↓
bindValue or bindParamでパラメータに値をセット
↓
executeメソッドでクエリを実行
以下のコードを見てください。↓
prepareメソッドでSQL文をセット
↓
bindValue or bindParamでパラメータに値をセット
↓
executeメソッドでクエリを実行
//PDOオブジェクトの生成 $pdo = new PDO("mysql:dbname=test;host=localhost",USERNAME,PASSWORD); //prepareメソッドでSQLをセット $stmt = $pdo->prepare("insert into test(num,name) values(?,?)"); //bindValueメソッドでパラメータをセット $stmt->bindValue(1,5); $stmt->bindValue(2,10000); //executeでクエリを実行。 $stmt->execute();SQLを見ていただければわかりますが、values内に疑問符のパラメータマークが二つあります。
ここにbindValueでセットした値が入り、実行されることになります。
executeメソッドは成功した場合はTRUE、失敗時はFALSEを返します。
execメソッドでinsert文実行
プリペアドステートメントを使わない場合はPDOオブジェクトの「execメソッド」でinsert文を実行します。以下のコードを見てください。
//PDOオブジェクトの生成 $pdo = new PDO("mysql:dbname=test;host=localhost",USERNAME,PASSWORD); //execメソッドでクエリを実行。insert文を実行した場合挿入件数が戻り値として返る $count = $pdo->exec("insert into test(num,name) values(5,10000)"); echo "{$count}件データを挿入しました。".PHP_EOL;とてもシンプルですね。
PDOオブジェクトのexecメソッドでinsert文を実行した場合はデータ挿入件数が戻り値として返って来ます。
この戻り値で登録件数を表示したり、処理を分岐させたりできるので覚えておくと良いと思います。
ただこちらはプリペアドステートメントを使ってないので、挿入するデータのエスケープや引用符で囲む処理などは自分で実装する必要があります。
そこだけ注意してください。
>> 【PDO delete文実行】に進む
>> PHP入門トップに戻る