選單
×
   ❮     
HTML CSS JAVASCRIPT SQL PYTHON JAVA PHP HOW TO W3.CSS C C++ C# BOOTSTRAP REACT MYSQL JQUERY EXCEL XML DJANGO NUMPY PANDAS NODEJS R TYPESCRIPT ANGULAR GIT POSTGRESQL MONGODB ASP AI GO KOTLIN SASS VUE DSA GEN AI SCIPY AWS CYBERSECURITY DATA SCIENCE
     ❯   

PHP 教程

PHP HOME PHP 簡介 PHP 安裝 PHP 語法 PHP 註釋 PHP 變數 PHP Echo / Print PHP 資料型別 PHP 字串 PHP 數字 PHP 型別轉換 PHP 數學 PHP 常量 PHP 魔術常量 PHP 運算子 PHP If...Else...Elseif PHP Switch PHP 迴圈 PHP 函式 PHP 陣列 PHP 超全域性變數 PHP 正則表示式

PHP 表單

PHP 表單處理 PHP 表單驗證 PHP 表單必填項 PHP 表單 URL/電子郵件 PHP 表單完成

PHP 高階

PHP 日期和時間 PHP Include PHP 檔案處理 PHP 檔案開啟/讀取 PHP 檔案建立/寫入 PHP 檔案上傳 PHP Cookies PHP Sessions PHP 過濾器 PHP 高階過濾器 PHP 回撥函式 PHP JSON PHP 異常

PHP OOP

PHP 什麼是 OOP PHP 類/物件 PHP 建構函式 PHP 解構函式 PHP 訪問修飾符 PHP 繼承 PHP 常量 PHP 抽象類 PHP 介面 PHP Trait PHP 靜態方法 PHP 靜態屬性 PHP 名稱空間 PHP 可迭代物件

MySQL 資料庫

MySQL 資料庫 MySQL 連線 MySQL 建立資料庫 MySQL 建立表 MySQL 插入資料 MySQL 獲取最後 ID MySQL 插入多條資料 MySQL 預處理 MySQL 查詢資料 MySQL Where MySQL Order By MySQL 刪除資料 MySQL 更新資料 MySQL 限制資料

PHP XML

PHP XML 解析器 PHP SimpleXML 解析器 PHP SimpleXML - 獲取 PHP XML Expat PHP XML DOM

PHP - AJAX

AJAX 簡介 AJAX PHP AJAX 資料庫 AJAX XML AJAX 即時搜尋 AJAX 投票

PHP 示例

PHP 示例 PHP 編譯器 PHP 測驗 PHP 練習 PHP 伺服器 PHP 證書

PHP 參考手冊

PHP 概述 PHP 陣列 PHP 日曆 PHP 日期 PHP 目錄 PHP 錯誤 PHP 異常 PHP 檔案系統 PHP 過濾器 PHP FTP PHP JSON PHP 關鍵詞 PHP Libxml PHP 郵件 PHP 數學 PHP 雜項 PHP MySQLi PHP 網路 PHP 輸出控制 PHP 正則表示式 PHP SimpleXML PHP Stream PHP String PHP 變數處理 PHP XML 解析器 PHP 壓縮 PHP 時區

PHP 連線到 MySQL


PHP 5 及更高版本可以使用以下方式處理 MySQL 資料庫:

  • MySQLi 擴充套件("i" 代表 improved,即改進版)
  • PDO(PHP Data Objects)

早期版本的 PHP 使用了 MySQL 擴充套件。但是,該擴充套件已於 2012 年棄用。


我應該使用 MySQLi 還是 PDO?

如果需要簡短的答案,那就是“隨便你”。

MySQLi 和 PDO 都有各自的優點

PDO 可用於 12 種不同的資料庫系統,而 MySQLi 只能與 MySQL 資料庫配合使用。

因此,如果需要將專案切換到使用另一個數據庫,PDO 可以輕鬆完成。你只需要更改連線字串和一些查詢。使用 MySQLi,你需要重寫整個程式碼,包括查詢。

兩者都是面向物件的,但 MySQLi 還提供過程式 API。

兩者都支援預處理語句。預處理語句可以防止 SQL 注入,並且對於 Web 應用程式安全非常重要。


MySQLi 和 PDO 語法的 MySQL 示例

在本章及後續章節中,我們將演示使用 PHP 和 MySQL 的三種方法:

  • MySQLi(面向物件)
  • MySQLi(過程式)
  • PDO

MySQLi 安裝

對於 Linux 和 Windows:在大多數情況下,當安裝了 php5 mysql 包時,MySQLi 擴充套件會自動安裝。

有關安裝詳細資訊,請訪問: https://php.net.tw/manual/en/mysqli.installation.php


PDO 安裝

有關安裝詳細資訊,請訪問: https://php.net.tw/manual/en/pdo.installation.php



開啟與 MySQL 的連線

在訪問 MySQL 資料庫中的資料之前,我們需要能夠連線到伺服器。

示例(MySQLi 面向物件)

<?php
$servername = "localhost";
$username = "username";
$password = "password";

// 建立連線
$conn = new mysqli($servername, $username, $password);

// 檢查連線
if ($conn->connect_error) {
  die("連線失敗: " . $conn->connect_error);
}
echo "Connected successfully";
?>

上面面向物件的示例說明

$connect_error 在 PHP 5.2.9 和 5.3.0 之前是無效的。如果你需要確保與 5.2.9 和 5.3.0 之前的 PHP 版本相容,請使用以下程式碼代替:

// 檢查連線
if (mysqli_connect_error()) {
  die("Database connection failed: " . mysqli_connect_error());
}

示例(MySQLi 過程式)

<?php
$servername = "localhost";
$username = "username";
$password = "password";

// 建立連線
$conn = mysqli_connect($servername, $username, $password);

// 檢查連線
if (!$conn) {
  die("Connection failed: " . mysqli_connect_error());
}
echo "Connected successfully";
?>

示例(PDO)

<?php
$servername = "localhost";
$username = "username";
$password = "password";

try {
  $conn = new PDO("mysql:host=$servername;dbname=myDB", $username, $password);
  // 將 PDO 錯誤模式設定為異常
  $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  echo "Connected successfully";
} catch(PDOException $e) {
  echo "Connection failed: " . $e->getMessage();
}
?>

注意: 在上面的 PDO 示例中,我們還**指定了一個數據庫 (myDB)**。PDO 需要一個有效的資料庫才能連線。如果未指定資料庫,將丟擲異常。

提示: PDO 的一個巨大好處是它有一個異常類來處理資料庫查詢中可能發生的任何問題。如果在 try{ } 塊中丟擲異常,指令碼將停止執行並直接跳轉到第一個 catch(){ } 塊。


關閉連線

指令碼結束時連線將自動關閉。要提前關閉連線,請使用以下方法:

MySQLi 面向物件

$conn->close();

MySQLi 過程式

mysqli_close($conn);

PDO

$conn = null;


×

聯絡銷售

如果您想將 W3Schools 服務用於教育機構、團隊或企業,請傳送電子郵件給我們
sales@w3schools.com

報告錯誤

如果您想報告錯誤,或想提出建議,請傳送電子郵件給我們
help@w3schools.com

W3Schools 經過最佳化,旨在方便學習和培訓。示例可能經過簡化,以提高閱讀和學習體驗。教程、參考資料和示例會不斷審查,以避免錯誤,但我們無法保證所有內容的完全正確性。使用 W3Schools 即表示您已閱讀並接受我們的使用條款Cookie 和隱私政策

版權所有 1999-2024 Refsnes Data。保留所有權利。W3Schools 由 W3.CSS 提供支援