MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

既存のMySQLテーブルを更新するPHPスクリプトの作成方法

PHPの関数 mysql_query() を使えば、WHERE句の有無にかかわらず、SQLのUPDATEコマンドを実行できます。この関数は、mysql> プロンプトでコマンドを実行するのと同じようにSQL文を処理します。以下に具体的な例を示します。

サンプルコード

この例では、tutorial_id が 3 であるレコードの tutorial_title フィールドを更新するPHPスクリプトを作成します。

<?php
    $dbhost = 'localhost:3036';
    $dbuser = 'root';
    $dbpass = 'rootpassword';
    $conn = mysql_connect($dbhost, $dbuser, $dbpass);

    if(! $conn ) {
        die('Could not connect: ' . mysql_error());
    }

    $sql = 'UPDATE tutorials_tbl SET tutorial_title="Learning JAVA" WHERE tutorial_id=3';
    mysql_select_db('TUTORIALS');
    $retval = mysql_query( $sql, $conn );

    if(! $retval ) {
        die('Could not update data: ' . mysql_error());
    }
    echo "Updated data successfully\n";
    mysql_close($conn);
?>

実行結果

スクリプトが正常に実行されると、「Updated data successfully」というメッセージが表示され、tutorial_id が 3 のレコードのタイトルが「Learning JAVA」に更新されます。接続や更新に失敗した場合は、mysql_error() によるエラーメッセージが表示されてスクリプトが終了します。

注意点

mysql_connect() や mysql_query() などの mysql_* 系の関数は、PHP 5.5.0 で非推奨となり、PHP 7.0 以降では削除されています。現在の開発では、mysqli 拡張モジュールや PDO を使った実装が推奨されます。また、UPDATE文にWHERE句を付け忘れると、テーブル内のすべてのレコードが更新されてしまうため、実行前には必ずSQL文の内容を確認してください。

  1. MySQLテーブルのストレージエンジンを変更する方法

    MySQLでは、ALTER TABLE文を使うことで、既存テーブルのストレージエンジンを簡単に変更できます。例えば、MyISAMで作成したテーブルをInnoDBに切り替えたい場合などに役立ちます。 基本構文 alter table yourTableName ENGINE=InnoDB; yourTableName の部分に対象となるテーブル名を指定し、ENGINE= の後ろに設定したいストレージエンジン名を記述します。 サンプルテーブルの作成 まず、MyISAMエンジンを使用したテーブルを作成してみましょう。 mysql> create table DemoTable  &n

  2. MySQLテーブルを一括更新する方法|ADDTIME関数で複数行の時刻データをまとめて変更

    MySQLでは、UPDATE文と関数を組み合わせることで、テーブル内の複数のレコードを一度に一括更新(バッチ更新)できます。本記事では、時刻型(TIME型)のカラムに対してADDTIME関数を使い、すべての行の時刻をまとめて加算・更新する手順を、実際のSQL文と実行結果付きでわかりやすく解説します。1. サンプルテーブルを作成するまず、時刻データを格納するためのテーブル「DemoTable」を作成します。mysql> create table DemoTable    -> (    -> Bre