データの更新(UPDATE)

広告

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

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

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

<body>

<?php

function quote_smart($value)
{
    // 数値以外をクオートする
    if (!is_numeric($value)) {
        $value = "'" . mysql_real_escape_string($value) . "'";
    }
    return $value;
}

$link = mysql_connect('localhost', 'testuser', 'testuser');
if (!$link) {
    die('接続失敗です。'.mysql_error());
}

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

$db_selected = mysql_select_db('uriage', $link);
if (!$db_selected){
    die('データベース選択失敗です。'.mysql_error());
}

print('<p>uriageデータベースを選択しました。</p>');

mysql_set_charset('utf8');

print('<p>データを更新します。</p>');

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

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

$result_flag = mysql_query($sql);

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

print('<p>更新後のデータを取得します。</p>');

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

while ($row = mysql_fetch_assoc($result)) {
    print('<p>');
    print('id='.$row['id']);
    print(',name='.$row['name']);
    print('</p>');
}

$close_flag = mysql_close($link);

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

?>
</body>
</html>

上記を「test1.php」としてローカル環境で稼動しているApacheのドキュメントルート以下に設置し、ブラウザでアクセスします。

p9-1

テーブルに含まれるデータを更新できました。

( Written by Tatsuo Ikura )

Profile
profile_img

著者 / TATSUO IKURA

プログラミングや開発環境構築の解説サイトを運営しています。