PHP資料庫學習如何使用PDO執行SQL語句?
在之前的文章中為大家帶來了《PHP資料庫學習之怎樣使用PDO連接資料庫? 》,其中給大家詳細的介紹了在PHP中怎麼透過PDO來連接資料庫,這篇文章我們繼續來看看PHP怎麼使用PDO執行SQL語句。希望對大家有幫助!
在之前的文章中我們已經學習到了PHP怎麼透過PDO來連接到資料庫,連接到資料庫那就得執行SQL語句。在PDO 中,我們可以使用三種方式來執行SQL 語句,分別是 exec()
方法,query()
方法,以及預處理語句 prepare()
和execute()
方法。那接下來我們一起來看看吧。
<strong><span style="font-size: 20px;">exec() </span></strong>
#方法
在我們執行 INSERT 、UPDATE 和DELETE 等這些不需要傳回結果集的SQL語句的時候,我們就可以使用PDO物件中的 exec()
方法,使用這個方法成功執行之後,傳回的結果是受到影響的行數,
exec() 方法的語法格式如下:
PDO::exec(string $sql)
要注意的是:
##$ sql
為要執行的SQL 語句。
exec()
方法不會從 SELECT 查詢語句中取得對應的結果。
<?php $dsn = 'mysql:host=127.0.0.1;dbname=test'; $user = 'root'; $pwd = 'root'; try{ $pdo = new PDO($dsn,$user,$pwd); $sql = "insert into user(name,age,sex) values('壹壹','21','男')"; $res = $pdo -> exec($sql); if($res) echo '成功添加 '.$res.' 条数据!'; }catch(PDOException $e){ echo '数据库连接失败:'.$e -> getMessage(); } ?>
query() 方法。
<strong>query() <span style="max-width:90%"></span></strong>
#方法
exec()方法能夠傳回這些不需要傳回結果集的語句訊息,當執行需要傳回結果集的 SELECT 查詢語句時,我們就需要透過query()語句。透過該方法執行成功的話,反悔的家國是一個
PDOStatement 物件。
rowCount() 方法取得。
PDO::query(string $sql) PDO::query(string $sql, int $PDO::FETCH_COLUMN, int $colno) PDO::query(string $sql, int $PDO::FETCH_CLASS, string $classname, array $ctorargs) PDO::query(string $sql, int $PDO::FETCH_INTO, object $object)
$sql 為要執行的SQL 語句;其餘的參數用來為語句設定預設的取得模式,相當於呼叫結果物件PDOStatement::setFetchMode() 方法。
<?php $dsn = 'mysql:host=127.0.0.1;dbname=test'; $user = 'root'; $pwd = 'root'; try{ $pdo = new PDO($dsn,$user,$pwd); $sql = "SELECT * FROM user WHERE name='壹壹'"; $res = $pdo -> query($sql,PDO::FETCH_ASSOC); print_r($res); }catch(PDOException $e){ echo '数据库连接失败:'.$e -> getMessage(); } ?>
query() 和
exec() 方法有以下幾點要注意:
- query() 和exec() 都可以執行所有的SQL 語句,只是傳回值不同而已;
- query() 可以實作所有exec() 的功能;
- 當把select 語句應用到exec() 時,總是回傳0;
- 如果要看查詢的具體結果,可以透過foreach 語句完成迴圈輸出。
<strong>prepare()<span style="font-size: 20px;"></span></strong>
# 和execute() 方法
prepare() 方法去準備一個要執行的查詢,再使用PDOStatement 物件中的
execute() 方法來執行。那接下來我們就來看看
prepare() 和
execute() 方法。
PDO::prepare(string $statement[, array $driver_options = array()])
$statement
表示的是必須是對目標資料庫有效的SQL 語句範本;
$driver_options
表示為選用參數,是陣列型別的選用參數,包含一個或多個鍵值對,為傳回的PDOStatement 物件設定屬性。
PDOStatement::execute([array $input_parameters])
参数
$input_parameters
为一个元素个数和将被执行的 SQL 语句中绑定的参数一样多的数组。SQL 语句模板中可以包含零个或多个参数占位标记,格式可以是命名(:name)或问号(?)的形式,当它执行时将用真实数据取代。
在同一个 SQL 语句里,命名和问号形式不能同时使用,只能选择其中一种参数形式。如果使用命名形式的占位标记,那么标记的命名必须是唯一的。
接下来我们看一下使用命名形式的参数占位符,查询指定的 SQL 语句,示例如下:
<?php $dsn = 'mysql:host=127.0.0.1;dbname=test'; $user = 'root'; $pwd = 'root'; try{ $pdo = new PDO($dsn,$user,$pwd); $sql = "SELECT name,age,sex FROM user WHERE age = :age"; $sth = $pdo -> prepare($sql); $sth -> execute([':age'=>11]); $res1 = $sth -> fetchAll(); $sth -> execute(array(':age'=>14)); $res2 = $sth -> fetchAll(); echo '<pre class="brush:php;toolbar:false">'; print_r($res1); print_r($res2); }catch(PDOException $e){ echo '数据库连接失败:'.$e -> getMessage(); } ?>
输出结果:
上述示例是使用命名形式的参数占位符,查询指定的 SQL 语句,接下来我们看一下使用问号形式的参数占位符,查询指定的 SQL 语句。示例如下:
<?php $dsn = 'mysql:host=127.0.0.1;dbname=test'; $user = 'root'; $pwd = 'root'; try{ $pdo = new PDO($dsn,$user,$pwd); $sql = "SELECT name,age,sex FROM user WHERE age = ? AND sex = ?"; $sth = $pdo -> prepare($sql); $sth -> execute([12,'男']); $res1 = $sth -> fetchAll(); $sth -> execute(array(11,'女')); $res2 = $sth -> fetchAll(); echo '<pre class="brush:php;toolbar:false">'; print_r($res1); print_r($res2); }catch(PDOException $e){ echo '数据库连接失败:'.$e -> getMessage(); } ?>
输出结果:
由此我们便通过使用问号形式的参数占位符,查询指定的 SQL 语句。
大家如果感兴趣的话,可以点击《PHP视频教程》进行更多关于PHP知识的学习。
以上是PHP資料庫學習如何使用PDO執行SQL語句?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

熱門話題

PHP 8.4 帶來了多項新功能、安全性改進和效能改進,同時棄用和刪除了大量功能。 本指南介紹如何在 Ubuntu、Debian 或其衍生版本上安裝 PHP 8.4 或升級到 PHP 8.4

CakePHP 是 PHP 的開源框架。它旨在使應用程式的開發、部署和維護變得更加容易。 CakePHP 基於類似 MVC 的架構,功能強大且易於掌握。模型、視圖和控制器 gu

Visual Studio Code,也稱為 VS Code,是一個免費的原始碼編輯器 - 或整合開發環境 (IDE) - 可用於所有主要作業系統。 VS Code 擁有大量針對多種程式語言的擴展,可以輕鬆編寫

CakePHP 是一個開源MVC 框架。它使應用程式的開發、部署和維護變得更加容易。 CakePHP 有許多函式庫可以減少大多數常見任務的過載。

本教程演示瞭如何使用PHP有效地處理XML文檔。 XML(可擴展的標記語言)是一種用於人類可讀性和機器解析的多功能文本標記語言。它通常用於數據存儲

字符串是由字符組成的序列,包括字母、數字和符號。本教程將學習如何使用不同的方法在PHP中計算給定字符串中元音的數量。英語中的元音是a、e、i、o、u,它們可以是大寫或小寫。 什麼是元音? 元音是代表特定語音的字母字符。英語中共有五個元音,包括大寫和小寫: a, e, i, o, u 示例 1 輸入:字符串 = "Tutorialspoint" 輸出:6 解釋 字符串 "Tutorialspoint" 中的元音是 u、o、i、a、o、i。總共有 6 個元

JWT是一種基於JSON的開放標準,用於在各方之間安全地傳輸信息,主要用於身份驗證和信息交換。 1.JWT由Header、Payload和Signature三部分組成。 2.JWT的工作原理包括生成JWT、驗證JWT和解析Payload三個步驟。 3.在PHP中使用JWT進行身份驗證時,可以生成和驗證JWT,並在高級用法中包含用戶角色和權限信息。 4.常見錯誤包括簽名驗證失敗、令牌過期和Payload過大,調試技巧包括使用調試工具和日誌記錄。 5.性能優化和最佳實踐包括使用合適的簽名算法、合理設置有效期、
