PHP MySQL データの挿入


MySQLi と PDO を使用して MySQL にデータを挿入する

データベースとテーブルを作成した後、テーブルにデータを追加できます。

以下にいくつかの構文規則を示します:

  • PHP では SQL クエリ文は引用符を使用する必要があります
  • SQL クエリ文内の文字列値は引用符で囲む必要があります
  • 数値は引用符が不要です
  • NULL 値は引用符が不要です

INSERT INTO 文は通常、MySQL テーブルに新しいレコードを追加するために使用されます:

INSERT INTO table_name (column1, column2, column3,...)
VALUES (value1, value2, value3,...)

SQL の詳細については、こちらを参照してください:SQL チュートリアル。

前のいくつかの章で、テーブル "MyGuests" を作成しました。テーブルフィールドは "id", "firstname", "lastname", "email", "reg_date" です。 それでは、テーブルにデータを入力してみましょう。

Note 注意:列に AUTO_INCREMENT (例: "id" 列) または TIMESTAMP (例: "reg_date" 列) が設定されている場合、SQL クエリ文で値を指定する必要はありません。MySQL が自動的にその列に値を追加します。

以下の例では、"MyGuests" テーブルに新しいレコードを追加しています:

例 (MySQLi - オブジェクト指向)

<?php $servername = "localhost"; $username = "username"; $password = "password"; $dbname = "myDB"; //接続を作成 $conn = new mysqli($servername, $username, $password, $dbname); //接続を確認 if ($conn->connect_error) { die("接続失敗:" . $conn->connect_error); } $sql = "INSERT INTO MyGuests (firstname, lastname, email) VALUES ('John', 'Doe', '[email protected]')"; if ($conn->query($sql) === TRUE) { echo "新しいレコードが正常に挿入されました"; } else { echo "Error: " . $sql . "<br>" . $conn->error; } $conn->close(); ?>


例 (MySQLi - 手続き型)

<?php $servername = "localhost"; $username = "username"; $password = "password"; $dbname = "myDB"; //接続を作成 $conn = mysqli_connect($servername, $username, $password, $dbname); //接続を確認 if (!$conn) { die("Connection failed: " . mysqli_connect_error()); } $sql = "INSERT INTO MyGuests (firstname, lastname, email) VALUES ('John', 'Doe', '[email protected]')"; if (mysqli_query($conn, $sql)) { echo "新しいレコードが正常に挿入されました"; } else { echo "Error: " . $sql . "<br>" . mysqli_error($conn); } mysqli_close($conn); ?>


例 (PDO)

<?php $servername = "localhost"; $username = "username"; $password = "password"; $dbname = "myDBPDO"; try { $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password); //PDO エラーモードを設定して例外をスローする $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $sql = "INSERT INTO MyGuests (firstname, lastname, email) VALUES ('John', 'Doe', '[email protected]')"; //exec() を使用し、結果は返されません $conn->exec($sql); echo "新しいレコードが正常に挿入されました"; } catch(PDOException $e) { echo $sql . "<br>" . $e->getMessage(); } $conn = null; ?>

その他の拡張