【PHP】MySQLにレコードを挿入する
PHPからMySQLにアクセスし、任意のレコード(データ)をデータベース(テーブル)に挿入する方法を説明します。
環境
まず環境として、「sample」というデータベースを作成し、そこに「test」というテーブルを作ります。
「test」テーブルには「id」「name」「memo」というフィールドがあります。
データベースの作成方法はデータベースの作成・削除・選択を、テーブルの作成方法はテーブルの作成方法を参照して下さい(共にphpMyAdminからSQLクエリを実行して作成します)。
PHPからMySQLにデータを挿入
PHPからMySQLへ接続・操作する方法はいくつかありますが、今回は汎用性が高く高速なPDO(PHP Data Objects)クラスを使います。
PDOクラスを使ってMySQLにデータを挿入する場合は、「PDOオブジェクトの作成」→「SQLの準備」→「SQLの発行」という流れをとります。
PDOオブジェクトの作成
オブジェクトの作成は以下のようにします
//PDOオブジェクトの作成 $pdo = new PDO("mysql:host=MySQLサーバのホスト名;dbname=データベース名;charset=utf8;", "データベース接続のID", "データベース接続のパスワード");
「MySQLサーバのホスト名」は、エックスサーバの場合「mysql○○○.xserver.jp」のようになります(「"mysql○○○.xserver.jp"」のようにクォーテーションはいらない)。
「データベース名」は作成したデータベース名を入力します。これもクォーテーションは要りません。
同様にデータベース接続のID(データベースのユーザ名)とパスワードを入力します。
SQLの準備
prepareメソッドでSQL文の準備を行います。発行はまだしません。
//SQLの準備 $st = $pdo->prepare("INSERT INTO テーブル名 VALUES(?, ?, ?,・・・)");
「テーブル名」は作成したテーブル名を記入します。
「?」はフィールドに挿入するデータですが、データは後ほど設定するため、『仮のデータ』です(プレースホルダといいます)。
SQLの発行
//SQLの発行 $st->execute(array("データ1", "データ2", "データ3", ・・・));
executeメソッドでSQL文を発行します。MySQLに挿入するデータは配列形式で格納します。
「データ1」は先ほど準備した「?」の一番最初に該当し、「データ2」は二番目の「?」、「データ3」は三番目の「?」に該当します。
サンプルプログラム
以上を踏まえて、「sample」データベースにある「test」テーブルに「id」は「001」、「name」は「佐藤」、「memo」は「男性」となるようにデータを挿入したいと思います。
<?php //PDOオブジェクトの作成 $pdo = new PDO("mysql:host=MySQLサーバのホスト名;dbname=データベース名;charset=utf8;", "データベース接続のID", "データベース接続のパスワード"); //SQLの準備 $st = $pdo->prepare("INSERT INTO テーブル名 VALUES(?, ?, ?)"); //SQLの発行 $st->execute(array("001", "佐藤", "男性")); ?>
なお、PDOでMySQLに接続する際には、【PHP】PDOでMySQLに接続する際、必ず例外処理(try,catch)を行うにあるように例外処理を行うようにしてください。
あわせて読んでほしい!
コメント
まだコメントはありません。