PHP 5 及以上版本建議使用以下方式連接 MySQL :
- MySQLi :MySQLi 只針對 MySQL 數據庫,MySQLi 還提供了 API 接口。
- PDO (PHP Data Objects):PDO 應用在 12 種不同數據庫中。
共同點:
1. 兩者都是面向對象
2. 兩者都支持預處理語句。 預處理語句可以防止 SQL 注入,對於 web 項目的安全性是非常重要的。
確保wamp里已經安裝好了MySQLi或PDO,查看方式:echo phpinfo();
接下來將會使用以下三種方式來演示 PHP 操作 MySQL:
- MySQLi (面向對象)
- MySQLi (面向過程)
- PDO
1. MySQLi - 面向對象
<?php header('Content-Type: text/html;charset=utf-8'); //echo phpinfo(); // MySQLi面向對象 // 在我們訪問MySQL數據庫之前,我們需要先連接到數據庫服務器 $servername = "localhost"; $username = "root"; $password = ""; // 創建連接 $conn = new mysqli($servername, $username, $password); // 檢測連接 if($conn -> connect_error) { die("連接失敗:". $conn->connect_error); } echo "連接成功"; ?>
2. MySQLi - 面向過程
<?php header('Content-Type: text/html; charset=utf-8'); // MySQLi - 面向過程 $servername = "localhost"; $username = "root"; $password = ""; // 創建連接 $conn = mysqli_connect($servername, $username, $password); // 檢測連接 if(!$conn) { die("連接失敗:" . mysqli_connect_error()); } echo "連接成功"; ?>
3. PDO連接MySQL數據庫
PDO要設置數據庫名,如果沒有指定,則會拋出異常
<?php header('Content-Type: text/html; charset=utf-8'); // PDO連接MySQL數據庫 // PDO要設置數據庫名,如果沒有指定,則會拋出異常 $servername = "localhost"; $username = "root"; $password = ""; $dbname = "mugua"; try { $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password); echo "連接成功"; } catch(PDOException $e) { echo $e->getMessage(); } ?>
連接在腳本執行完畢后會自動關閉,也可以使用代碼關閉連接:
MySQLi - 面向對象
$conn->close();
MySQLi - 面向過程
mysqli_close($conn);
PDO
$conn = null;