データの更新(UPDATE)

広告

データの更新を行います。UPDATEを使います。UPDATEの場合は、pg_query関数の結果として成功した場合に TRUE 、エラー時に FALSE を返します。

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

pgtest6.php

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

<?php

$conn = "host=localhost dbname=uriage user=pguser password=pguser";
$link = pg_connect($conn);
if (!$link) {
    die('接続失敗です。'.pg_last_error());
}

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

pg_set_client_encoding("sjis");

$result = pg_query('SELECT id, name FROM shouhin');
if (!$result) {
    die('クエリーが失敗しました。'.pg_last_error());
}

for ($i = 0 ; $i < pg_num_rows($result) ; $i++){
    $rows = pg_fetch_array($result, NULL, PGSQL_ASSOC);
    print('id='.$rows['id']);
    print(',name='.$rows['name'].'<br>');
}

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

$id = 6;
$name = 'デジタルカメラ';

$sql = sprintf("UPDATE shouhin SET name = '%s' WHERE id = %s"
         , pg_escape_string($name), $id);

$result_flag = pg_query($sql);

if (!$result_flag) {
    die('INSERTクエリーが失敗しました。'.pg_last_error());
}

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

$result = pg_query('SELECT id, name FROM shouhin');
if (!$result) {
    die('クエリーが失敗しました。'.pg_last_error());
}

for ($i = 0 ; $i < pg_num_rows($result) ; $i++){
    $rows = pg_fetch_array($result, NULL, PGSQL_ASSOC);
    print('id='.$rows['id']);
    print(',name='.$rows['name'].'<br>');
}

$close_flag = pg_close($link);

if ($close_flag){
    print('切断に成功しました。<br>');
}

?>
</body>
</html>

上記ファイルをWWWサーバに設置しブラウザ経由で見ると下記のように表示されます。

更新

PHP入門の他の記事を見てみる

( Written by Tatsuo Ikura )