php

PHP MySQL 插入數據

將數據插入MySQL數據庫表
現在,您已經了解瞭如何在MySQL中創建數據庫和表。在本教程中,您將學習如何執行SQL查詢以將記錄插入表中。

INSERT INTO語句用於在數據庫表中插入新行。

讓我們使用帶有適當值的INSERT INTO語句來執行一個SQL查詢,之後我們將通過將該INSERT查詢傳遞給PHP mysqli_query()函數來執行該INSERT查詢,以便在表中插入數據。下面是一個示例,它通過指定first_name,last_name和email字段的值向persons表插入新行。

示例:面向過程方式
<?php
$link = mysqli_connect(“localhost”, “root”, “”, “demo”);

// 檢查連接
if($link === false){
die(“錯誤:無法連接。 ” . mysqli_connect_error());
}

//嘗試執行插入查詢
$sql = “INSERT INTO persons (first_name, last_name, email) VALUES (‘Peter’, ‘Parker’, ‘[email protected]’)”;
if(mysqli_query($link, $sql)){
echo “記錄插入成功。”;
} else{
echo “錯誤:無法執行 $sql. ” . mysqli_error($link);
}

//關閉連接
mysqli_close($link);
?>
示例:面向對象方式
<?php
$mysqli = new mysqli(“localhost”, “root”, “”, “demo”);

//檢查連接
if($mysqli === false){
die(“ERROR: Could not connect. ” . $mysqli->connect_error);
}

//嘗試執行插入查詢
$sql = “INSERT INTO persons (first_name, last_name, email) VALUES (‘Peter’, ‘Parker’, ‘[email protected]’)”;
if($mysqli->query($sql) === true){
echo “記錄插入成功。”;
} else{
echo “錯誤:無法執行 $sql. ” . $mysqli->error;
}

//關閉連接
$mysqli->close();
?>
示例:PDO方式
<?php
try{
$pdo = new PDO(“mysql:host=localhost;dbname=demo”, “root”, “”);
//將PDO錯誤模式設置為異常
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch(PDOException $e){
die(“ERROR: Could not connect. ” . $e->getMessage());
}

//嘗試執行插入查詢
try{
$sql = “INSERT INTO persons (first_name, last_name, email) VALUES (‘Peter’, ‘Parker’, ‘[email protected]’)”;
$pdo->exec($sql);
echo “記錄插入成功。”;
} catch(PDOException $e){
die(“錯誤:無法執行 $sql. ” . $e->getMessage());
}

//關閉連接
unset($pdo);
?>
如果您還記得上一章中的內容,則id字段標記有AUTO_INCREMENT標誌。該修飾符告訴MySQL,如果未指定該值,則通過將前一個值增加1來自動為該字段分配一個值。

在表中插入多行
您也可以一次通過單個插入查詢將多行插入到表中。為此,請在INSERT INTO語句中包括多個列值列表,其中每行的列值必須用括號括起來並用逗號分隔。

讓我們在persons表中再插入幾行,如下所示:

示例:面向過程方式
<?php
$link = mysqli_connect(“localhost”, “root”, “”, “demo”);

//檢查連接
if($link === false){
die(“錯誤:無法連接。 ” . mysqli_connect_error());
}

//嘗試執行插入查詢
$sql = “INSERT INTO persons (first_name, last_name, email) VALUES
(‘John’, ‘Rambo’, ‘[email protected]’),
(‘Clark’, ‘Kent’, ‘[email protected]’),
(‘John’, ‘Carter’, ‘[email protected]’),
(‘Harry’, ‘Potter’, ‘[email protected]’)”;
if(mysqli_query($link, $sql)){
echo “記錄添加成功。”;
} else{
echo “錯誤:無法執行 $sql. ” . mysqli_error($link);
}

//關閉連接
mysqli_close($link);
?>
示例:面向對象方式
<?php
$mysqli = new mysqli(“localhost”, “root”, “”, “demo”);

//檢查連接
if($mysqli === false){
die(“ERROR: Could not connect. ” . $mysqli->connect_error);
}

//嘗試執行插入查詢
$sql = “INSERT INTO persons (first_name, last_name, email) VALUES
(‘John’, ‘Rambo’, ‘[email protected]’),
(‘Clark’, ‘Kent’, ‘[email protected]’),
(‘John’, ‘Carter’, ‘[email protected]’),
(‘Harry’, ‘Potter’, ‘[email protected]’)”;
if($mysqli->query($sql) === true){
echo “記錄插入成功。”;
} else{
echo “錯誤:無法執行 $sql. ” . $mysqli->error;
}

//關閉連接
$mysqli->close();
?>
示例:PDO方式
<?php
try{
$pdo = new PDO(“mysql:host=localhost;dbname=demo”, “root”, “”);
//將PDO錯誤模式設置為異常
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch(PDOException $e){
die(“錯誤:無法連接。 ” . $e->getMessage());
}

//嘗試執行插入查詢
try{
$sql = “INSERT INTO persons (first_name, last_name, email) VALUES
(‘John’, ‘Rambo’, ‘[email protected]’),
(‘Clark’, ‘Kent’, ‘[email protected]’),
(‘John’, ‘Carter’, ‘[email protected]’),
(‘Harry’, ‘Potter’, ‘[email protected]’)”;
$pdo->exec($sql);
echo “記錄插入成功。”;
} catch(PDOException $e){
die(“錯誤:無法執行 $sql. ” . $e->getMessage());
}

//關閉連接
unset($pdo);
?>
現在,轉到phpMyAdmin(http://localhost/phpmyadmin/),並檢查演示數據庫中的人員表數據。您會發現ID列的值是通過將前一個ID的值增加1來自動分配的。

注意: SQL語句內可以發生任意數量的換行符,但前提是任何換行符都不會破壞關鍵字,值,表達式等。

 

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *