使用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 - 物件導向)
<?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 ; ?>