fbpx
维基百科

PHP Data Objects

PDO(PHP Data Objects)是一種在PHP裡連接資料庫的使用介面[1]。PDO與mysqli[2]曾經被建議用來取代原本PHP在用的mysql[3]相關函數,基於資料庫使用的安全性,因為後者欠缺對於SQL資料隱碼的防護[4]

範例 编辑

以下是一個簡單的 PDO 更新交易資料庫的程式碼,其中採用了預處理的方式將執行語句與參數隔離:

<?php $query = "UPDATE `payment` SET `status` = '2', `id` = ?, `method` = ? WHERE `payment_id` = ? and `status` = '1'"; $stmt = $this -> pdo -> prepare($query); $stmt -> bindParam(1, $id); $stmt -> bindParam(2, $type); $stmt -> bindParam(3, $payment_id); $result = $stmt -> execute(); ?> 


PDO默认会把数据库中查询的数据全部缓存下来,这在查询的结果集特别大时会有各种问题,比如消耗太多服务器资源,或造成运行的脚本因内存超限而终止。
下面的代码使用PDO对象的setAttribute方法来禁用缓存。

<?php $dsn = "mysql:host=" . DATABASE_HOST . ";port=" . DATABASE_PORT . ";dbname=" . DATABASE_NAME; $username = DATABASE_USERNAME; $passwd = DATABASE_PASSWORD; $pdoConn = new PDO($dsn, $username, $passwd); $sql = "select * from big_table"; //假设这个表行数超多 $pdoConn->setAttribute(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY, false); //禁用缓存 $stmt = $pdoConn->query($sql); $i = -1; while ($row = $stmt->fetch()) { $i ++; if ($i % 10000) { //每一万个数据采样显示一下 continue; } var_dump($i); var_dump($row); } ?> 

資料庫支援 编辑

参考文献 编辑

  1. ^ PHP: PDO - Manual. [2014-02-18]. (原始内容于2014-02-23). 
  2. ^ . [2014-02-18]. (原始内容存档于2014-02-23). 
  3. ^ . [2014-02-18]. (原始内容存档于2014-02-23). 
  4. ^ PHP-DEV deprecating ext/mysql' - MARC. [2014-02-18]. (原始内容于2014-10-14). 

外部連結 编辑

data, objects, 是一種在php裡連接資料庫的使用介面, pdo與mysqli, 曾經被建議用來取代原本php在用的mysql, 相關函數, 基於資料庫使用的安全性, 因為後者欠缺對於sql資料隱碼的防護, 目录, 範例, 資料庫支援, 参考文献, 外部連結範例, 编辑以下是一個簡單的, 更新交易資料庫的程式碼, 其中採用了預處理的方式將執行語句與參數隔離, query, update, payment, status, method, where, payment, status, stmt, thi. PDO PHP Data Objects 是一種在PHP裡連接資料庫的使用介面 1 PDO與mysqli 2 曾經被建議用來取代原本PHP在用的mysql 3 相關函數 基於資料庫使用的安全性 因為後者欠缺對於SQL資料隱碼的防護 4 目录 1 範例 2 資料庫支援 3 参考文献 4 外部連結範例 编辑以下是一個簡單的 PDO 更新交易資料庫的程式碼 其中採用了預處理的方式將執行語句與參數隔離 lt php query UPDATE payment SET status 2 id method WHERE payment id and status 1 stmt this gt pdo gt prepare query stmt gt bindParam 1 id stmt gt bindParam 2 type stmt gt bindParam 3 payment id result stmt gt execute gt PDO默认会把数据库中查询的数据全部缓存下来 这在查询的结果集特别大时会有各种问题 比如消耗太多服务器资源 或造成运行的脚本因内存超限而终止 下面的代码使用PDO对象的setAttribute方法来禁用缓存 lt php dsn mysql host DATABASE HOST port DATABASE PORT dbname DATABASE NAME username DATABASE USERNAME passwd DATABASE PASSWORD pdoConn new PDO dsn username passwd sql select from big table 假设这个表行数超多 pdoConn gt setAttribute PDO MYSQL ATTR USE BUFFERED QUERY false 禁用缓存 stmt pdoConn gt query sql i 1 while row stmt gt fetch i if i 10000 每一万个数据采样显示一下 continue var dump i var dump row gt 資料庫支援 编辑firebird informix mysql mssql odbc pgsql sqlite参考文献 编辑 PHP PDO Manual 2014 02 18 原始内容存档于2014 02 23 MySQL Improved Extension 2014 02 18 原始内容存档于2014 02 23 Original MySQL API 2014 02 18 原始内容存档于2014 02 23 PHP DEV deprecating ext mysql MARC 2014 02 18 原始内容存档于2014 10 14 外部連結 编辑测试PDO函数在线 页面存档备份 存于互联网档案馆 取自 https zh wikipedia org w index php title PHP Data Objects amp oldid 74158888, 维基百科,wiki,书籍,书籍,图书馆,

文章

,阅读,下载,免费,免费下载,mp3,视频,mp4,3gp, jpg,jpeg,gif,png,图片,音乐,歌曲,电影,书籍,游戏,游戏。