>> PHP入門トップに戻る
今回はPDOでdelete文を実行する方法について説明します。
以下のようなテーブルを準備してください。
プリペアドステートメントについては「PDO プリペアドステートメント」を参照してください。
基本的にはselect文を実行する時と一緒で以下の様な流れになります。
executeメソッドの戻り値はクエリが成功するとTRUE、失敗するとFALSEが返るのでこれでエラーチェックが出来ます。
execメソッドでdelete文実行
次にPDOオブジェクトのexecメソッドでdelete文を実行してみましょう。
以下のコードを見てください。
この値をチェックすることで削除件数を表示したり、条件分岐させたりできるので覚えておきましょう。
execメソッドはただ引数のクエリを実行するだけですので、エスケープ処理等がされていません。
ユーザ入力値などをSQL内で使用している場合は、1つ目のプリペアドステートメントを利用した方法を使いましょう。
>> 【PDO update文実行】に進む
>> PHP入門トップに戻る
PDO delete文実行
以下のようなテーブルを準備してください。
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("delete from test where id = ?"); //bindValueメソッドでパラメータをセット $stmt->bindValue(1,5); //executeでクエリを実行。 $stmt->execute();特に難しくはないと思います。
executeメソッドの戻り値はクエリが成功するとTRUE、失敗するとFALSEが返るのでこれでエラーチェックが出来ます。
execメソッドでdelete文実行
次にPDOオブジェクトのexecメソッドでdelete文を実行してみましょう。以下のコードを見てください。
//PDOオブジェクトの生成 $pdo = new PDO("mysql:dbname=test;host=localhost",USERNAME,PASSWORD); //execメソッドでクエリを実行。execメソッドでdelete文を実行した場合は削除件数が返る。 $count = $pdo->exec("delete from test where id = 5"); echo "{$count}件データを削除しました。".PHP_EOL;execメソッドでdelete文を実行すると削除件数が戻り値として返って来ます。
この値をチェックすることで削除件数を表示したり、条件分岐させたりできるので覚えておきましょう。
execメソッドはただ引数のクエリを実行するだけですので、エスケープ処理等がされていません。
ユーザ入力値などをSQL内で使用している場合は、1つ目のプリペアドステートメントを利用した方法を使いましょう。
>> 【PDO update文実行】に進む
>> PHP入門トップに戻る