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" です。 それでは、テーブルにデータを入力してみましょう。
![]() |
注意:列に AUTO_INCREMENT (例: "id" 列) または TIMESTAMP (例: "reg_date" 列) が設定されている場合、SQL クエリ文で値を指定する必要はありません。MySQL が自動的にその列に値を追加します。 |
|---|
以下の例では、"MyGuests" テーブルに新しいレコードを追加しています:
例 (MySQLi - オブジェクト指向)
$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 - 手続き型)
$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)
$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;
