データの削除(DELETE)

広告

ここではDELETEの発行を試してみます。DELETEの場合は、queryメソッドの結果として成功した場合に DB_OK 、エラー時に DB_Error を返します。

では実際に試してみます。データベース名「uriage」に含まれる「shouhin」テーブルからデータを削除してみます。

sample11-1.php

<html>
<head><title>PHP TEST</title></head>
<body>

<?php

require_once 'DB.php';

$dsn = 'mysqli://testuser:testuser@localhost/uriage';

$db = DB::connect($dsn);
if (PEAR::isError($db)) {
    die($db->getMessage());
}

print('接続に成功しました<br>');

$db->query('SET NAMES sjis');
if (PEAR::isError($db)) {
    die($db->getMessage());
}

$sql = 'select * from shouhin';
$res =& $db->query($sql);
if (PEAR::isError($res)) {
    die($res->getMessage());
}

while ($row =& $res->fetchRow(DB_FETCHMODE_OBJECT)){
    print($row->id);
    print($row->name.'<br>');
}

print('<br>データを削除します。<br><br>');

$id = 6;

$sql = "delete from shouhin where id = ?";
$data = $id;

$res =& $db->query($sql, $data);
if (PEAR::isError($res)) {
    die($res->getMessage());
}

print('<br>削除後のデータを取得します。<br><br>');

$sql = 'select * from shouhin';
$res =& $db->query($sql);
if (PEAR::isError($res)) {
    die($res->getMessage());
}

while ($row =& $res->fetchRow(DB_FETCHMODE_OBJECT)){
    print($row->id);
    print($row->name.'<br>');
}

$db->disconnect();

?>

</body>
</html>

上記をWWWサーバに設置しブラウザで見てみると下記のようなりました。

PEAR::DBでDELETE

( Written by Tatsuo Ikura )