PHP資料庫學習之詳解PDO的基本用法

PHPz
發布: 2023-04-11 12:48:01
原創
2085 人瀏覽過

PHP PDO是PHP資料庫擴充的重要元件,它為PHP與多種關係型資料庫提供了統一的API,使用PDO可以讓我們的程式更安全、更有效率、更易於維護。

在本文中,我們將介紹PHP PDO的用法,包括如何連接資料庫、執行SQL語句、交易處理等面向。

一、連接資料庫

連接資料庫是使用PDO進行資料庫操作的關鍵步驟,連接資料庫前需要先準備好資料庫位址、使用者名稱、密碼、對應的資料庫名稱等資訊。

連接資料庫程式碼如下:

// 数据库连接信息,根据实际情况修改
$db_host = 'localhost'; // 数据库地址
$db_name = 'mydatabase'; // 数据库名称
$db_user = 'root'; // 数据库用户名
$db_password = 'password'; // 数据库密码

// 创建PDO对象
try {
    $pdo = new PDO("mysql:host={$db_host};dbname={$db_name}", $db_user, $db_password);
} catch (PDOException $e) {
    echo '数据库连接失败:' . $e->getMessage();
    exit;
}
登入後複製

二、執行SQL語句

連線好資料庫後,我們要對資料庫進行操作,首先要學習如何執行SQL語句。 PDO提供了多個執行SQL語句的方法,比較常用的是query()prepare()方法。

1、使用query()方法執行SQL語句

#query()方法可以直接執行SQL語句,語句執行成功後,回傳PDOStatement物件。

例如我們要查詢一張使用者表(user)中的數據,程式碼如下:

$sql = "SELECT * FROM user"; // SQL语句
$stmt = $pdo->query($sql); // 执行SQL语句,返回PDOStatement对象

// 获取查询结果
while ($row = $stmt->fetch()) {
    print_r($row);
}
登入後複製

2、使用prepare()方法執行SQL語句

prepare()方法可以準備一個SQL語句,並使用變數綁定的方式來執行該SQL語句,使用變數綁定可以防止SQL注入攻擊。

程式碼如下:

$sql = "SELECT * FROM user WHERE id = ?"; // SQL语句,使用?作为占位符
$stmt = $pdo->prepare($sql); // 准备SQL语句
$id = 1; // 赋值给变量$id
$stmt->execute([$id]); // 执行SQL语句并传入变量值

// 获取查询结果
while ($row = $stmt->fetch()) {
    print_r($row);
}
登入後複製

三、交易處理

在資料庫操作中,有些操作需要同時執行多條SQL語句,這時候就需要使用到交易處理。事務處理要確保所有操作都成功才會提交,否則會回滾到事務開始前的狀態。

程式碼如下:

$pdo->beginTransaction(); // 开启事务

// 定义SQL语句
$sql1 = "DELETE FROM user WHERE id = ?";
$sql2 = "INSERT INTO user (uname, age) VALUES (?, ?)";

// 准备SQL语句
$stmt1 = $pdo->prepare($sql1);
$stmt2 = $pdo->prepare($sql2);

// 赋值给变量
$id = 1; // 要删除的数据ID
$uname = 'test'; // 新增数据的用户名
$age = 18; // 新增数据的年龄

// 执行SQL语句
$stmt1->execute([$id]);
$stmt2->execute([$uname, $age]);

// 提交事务
$pdo->commit();
登入後複製

以上就是PHP PDO的基本用法,對於更進階的應用,還可以使用PDO的一些進階功能,例如預處理語句和命名綁定等。希望本文能對你在PHP開發中使用PDO有幫助。

以上是PHP資料庫學習之詳解PDO的基本用法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板