目錄
php pdo操作数据库,phppdo数据库
首頁 php教程 php手册 php pdo操作数据库,phppdo数据库

php pdo操作数据库,phppdo数据库

Jun 13, 2016 am 08:40 AM
pdo

php pdo操作数据库,phppdo数据库

  POD扩展是在PHP5中加入,该扩展提供PHP内置类 PDO来对数据库进行访问,不同数据库使用相同的方法名,解决数据库连接不统一的问题。

      PDO的特点:

  性能。PDO 从一开始就吸取了现有数据库扩展成功和失败的经验教训。因为 PDO 的代码是全新的,所以我们有机会重新开始设计性能,以利用 PHP 5 的最新特性。
能力。PDO 旨在将常见的数据库功能作为基础提供,同时提供对于 RDBMS 独特功能的方便访问。
  简单。PDO 旨在使您能够轻松使用数据库。API 不会强行介入您的代码,同时会清楚地表明每个函数调用的过程。
  运行时可扩展。PDO 扩展是模块化的,使您能够在运行时为您的数据库后端加载驱动程序,而不必重新编译或重新安装整个 PHP 程序。例如,PDO_OCI 扩展会替代 PDO 扩展实现 oracle 数据库 API。还有一些用于 MySQL、PostgreSQL、ODBC 和 Firebird 的驱动程序,更多的驱动程序尚在开发。

  

  PDO 安装

  你可以通过 PHP 的 phpinfo() 函数来查看是否安装了PDO扩展。

  1.在 Unix /Linux系统上安装 PDO

      在Unix上或Linux上你需要添加以下扩展:

    extension=pdo.so

  2.在Windows安装pdo

  PDO 和所有主要的驱动作为共享扩展随 PHP 一起发布,要激活它们只需简单地编辑 php.ini 文件,并添加以下扩展:

     extension=php_pdo.dll

  除此之外还有以下对应的各种数据库扩展:

<span class="pln"><span class="pun">    ;<span class="pln">extension<span class="pun">=<span class="pln">php_pdo_firebird<span class="pun">.<span class="pln">dll
    <span class="pln"><span class="pun"><span class="pln"><span class="pun"><span class="pln"><span class="pun"><span class="pln"><span class="pun">;<span class="pln">extension<span class="pun">=<span class="pln">php_pdo_informix<span class="pun">.<span class="pln">dll
    <span class="pun">;<span class="pln">extension<span class="pun">=<span class="pln">php_pdo_mssql<span class="pun">.<span class="pln">dll
    <span class="pun">;<span class="pln">extension<span class="pun">=<span class="pln">php_pdo_mysql<span class="pun">.<span class="pln">dll
    <span class="pun">;<span class="pln">extension<span class="pun">=<span class="pln">php_pdo_oci<span class="pun">.<span class="pln">dll
    <span class="pun">;<span class="pln">extension<span class="pun">=<span class="pln">php_pdo_oci8<span class="pun">.<span class="pln">dll
    <span class="pun">;<span class="pln">extension<span class="pun">=<span class="pln">php_pdo_odbc<span class="pun">.<span class="pln">dll
    <span class="pun">;<span class="pln">extension<span class="pun">=<span class="pln">php_pdo_pgsql<span class="pun">.<span class="pln">dll
    <span class="pun">;<span class="pln">extension<span class="pun">=<span class="pln">php_pdo_sqlite<span class="pun">.<span class="pln">dll</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span>
登入後複製

打开php.ini把上面所有行前面的分号去掉就可以了。
在设定好这些配置后,我们需要重启PHP 或 Web服务器。

  下面我们以mysql为例来使用pdo:

<?<span>php
$dbms='mysql';     //数据库类型
$host='localhost'; //数据库主机名
$dbName='test';    //使用的数据库
$user='root';      //数据库连接用户名
$pass='';          //对应的密码
$dsn="$dbms:host=$host;dbname=$dbName"<span>;


try<span> {
    $dbh = new PDO($dsn, $user, $pass); //初始化一个PDO对象
    echo "连接成功<br/>"<span>;
    /*你还可以进行一次搜索操作
    foreach ($dbh->query('SELECT * from FOO') as $row) {
        print_r($row); //你可以用 echo($GLOBAL); 来看到这些值
    }
    */
    $dbh = null<span>;
} catch (PDOException $e<span>) {
    die ("Error!: " . $e->getMessage() . "<br/>"<span>);
}
//默认这个不是长连接,如果需要数据库长连接,需要最后加一个参数:array(PDO::ATTR_PERSISTENT => true) 变成这样:
$db = new PDO($dsn, $user, $pass, array(PDO::ATTR_PERSISTENT => true<span>));

?></span></span></span></span></span></span></span></span>
登入後複製

  再来看看pdo的详细介绍:

1.预定义常量:

 2.PDO 类:

    • PDO::beginTransaction — 启动一个事务
    • PDO::commit — 提交一个事务
    • PDO::__construct — 创建一个表示数据库连接的 PDO 实例
    • PDO::errorCode — 获取跟数据库句柄上一次操作相关的 SQLSTATE
    • PDO::errorInfo — 返回最后一次操作数据库的错误信息
    • PDO::exec — 执行一条 SQL 语句,并返回受影响的行数
    • PDO::getAttribute — 取回一个数据库连接的属性
    • PDO::getAvailableDrivers — 返回一个可用驱动的数组
    • PDO::inTransaction — 检查是否在一个事务内
    • PDO::lastInsertId — 返回最后插入行的ID或序列值
    • PDO::prepare — 备要执行的SQL语句并返回一个 PDOStatement 对象
    • PDO::query — 执行 SQL 语句,返回PDOStatement对象,可以理解为结果集
    • PDO::quote — 为SQL语句中的字符串添加引号。
    • PDO::rollBack — 回滚一个事务
    • PDO::setAttribute — 设置属性
    • PDOStatement 类:
      • PDOStatement::bindColumn — 绑定一列到一个 PHP 变量
      • PDOStatement::bindParam — 绑定一个参数到指定的变量名
      • PDOStatement::bindValue — 把一个值绑定到一个参数
      • PDOStatement::closeCursor — 关闭游标,使语句能再次被执行。
      • PDOStatement::columnCount — 返回结果集中的列数
      • PDOStatement::debugDumpParams — 打印一条 SQL 预处理命令
      • PDOStatement::errorCode — 获取跟上一次语句句柄操作相关的 SQLSTATE
      • PDOStatement::errorInfo — 获取跟上一次语句句柄操作相关的扩展错误信息
      • PDOStatement::execute — 执行一条预处理语句
      • PDOStatement::fetch — 从结果集中获取下一行
      • PDOStatement::fetchAll — 返回一个包含结果集中所有行的数组
      • PDOStatement::fetchColumn — 从结果集中的下一行返回单独的一列。
      • PDOStatement::fetchObject — 获取下一行并作为一个对象返回。
      • PDOStatement::getAttribute — 检索一个语句属性
      • PDOStatement::getColumnMeta — 返回结果集中一列的元数据
      • PDOStatement::nextRowset — 在一个多行集语句句柄中推进到下一个行集
      • PDOStatement::rowCount — 返回受上一个 SQL 语句影响的行数
      • PDOStatement::setAttribute — 设置一个语句属性
      • PDOStatement::setFetchMode — 为语句设置默认的获取模式。
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

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

PHP Fatal error: Call to undefined method PDO::prepare() in的解決方法 PHP Fatal error: Call to undefined method PDO::prepare() in的解決方法 Jun 22, 2023 pm 06:40 PM

PHP作為一種流行的Web開發語言,已經被使用很久了。 PHP中整合的PDO(PHP資料物件)類別是我們在開發Web應用程式過程中與資料庫互動的常用方法。但是,一些PHP開發者經常遇到的問題是,當使用PDO類別與資料庫互動時,他們會收到這樣的錯誤:PHPFatalerror:CalltoundefinedmethodPDO::prep

php如何使用PHP的PDO_PGSQL擴充? php如何使用PHP的PDO_PGSQL擴充? Jun 02, 2023 pm 06:10 PM

PHP作為一種流行的程式語言,在Web開發領域中有著廣泛的應用。其中,PHP的PDO_PGSQL擴展是一種常用的PHP擴展,它提供了與PostgreSQL資料庫的交互接口,可以實現PHP與PostgreSQL之間的資料傳輸和交互。本文將詳細介紹如何使用PHP的PDO_PGSQL擴充。一、什麼是PDO_PGSQL擴充? PDO_PGSQL是PHP的擴充庫,它

PHP和PDO: 如何執行批次插入和更新 PHP和PDO: 如何執行批次插入和更新 Jul 28, 2023 pm 07:41 PM

PHP和PDO:如何執行批次插入和更新導言:在使用PHP編寫資料庫相關的應用程式時,經常會遇到需要批次插入和更新資料的情況。傳統的做法是使用循環來執行多次資料庫操作,但這樣的方法效率較低。 PHP的PDO(PHPDataObject)提供了一種更有效率的方法來執行批次插入和更新操作,本文將介紹如何使用PDO來實現批次插入和更新。一、PDO簡介:PDO是PH

PHP PDO 與 mysqli:比較和對比 PHP PDO 與 mysqli:比較和對比 Feb 19, 2024 pm 12:24 PM

PDOPDO是一個物件導向的資料庫存取抽象層,它為PHP提供了一個統一的接口,允許您使用相同的程式碼與不同的資料庫(如Mysql、postgresql、oracle)進行互動。 PDO隱藏了底層資料庫連線的複雜性,簡化了資料庫操作。優缺點優點:統一接口,支援多種資料庫簡化資料庫操作,降低開發難度提供預處理語句,提高安全性支援事務處理缺點:效能可能比原生擴充稍低依賴外部函式庫,可能會增加開銷演示程式碼使用PDO連線mysql資料庫:$db=newPDO("mysql:host=localhost;dbnam

PHP和PDO: 如何處理資料庫中的JSON數據 PHP和PDO: 如何處理資料庫中的JSON數據 Jul 29, 2023 pm 05:17 PM

PHP和PDO:如何處理資料庫中的JSON資料在現代web開發中,處理和儲存大量資料是一個非常重要的任務。隨著行動應用和雲端運算的普及,越來越多的資料以JSON(JavaScriptObjectNotation)格式儲存在資料庫中。 PHP作為一種常用的伺服器端語言,它的PDO(PHPDataObject)擴充提供了一種方便的方式來處理和操作資料庫。本

PHP和PDO: 如何進行分頁查詢和顯示數據 PHP和PDO: 如何進行分頁查詢和顯示數據 Jul 29, 2023 pm 04:10 PM

PHP和PDO:如何進行分頁查詢和顯示資料在開發網頁應用程式時,分頁查詢和顯示資料是一個非常常見的需求。透過分頁,我們可以一次顯示一定數量的數據,提高頁面載入速度和使用者體驗。在PHP中,使用PHP資料物件(PDO)函式庫可以輕鬆實現分頁查詢和顯示資料的功能。本文將介紹如何在PHP中使用PDO進行分頁查詢和顯示數據,並提供相應的程式碼範例。一、建立資料庫和資料表

如何使用PDO連接到Redis資料庫 如何使用PDO連接到Redis資料庫 Jul 28, 2023 pm 04:29 PM

如何使用PDO連接到Redis資料庫Redis是一個開源的高效能、記憶體儲存的鍵值資料庫,常用於快取、佇列等場景。在PHP開發中,使用Redis可以有效提升應用的效能與穩定性。而透過PDO(PHPDataObjects)擴展,我們可以更方便地連接和操作Redis資料庫。本文將介紹如何使用PDO連接到Redis資料庫,並附帶程式碼範例。安裝Redis擴充在開始

PHP和PDO: 如何執行資料庫中的全文搜索 PHP和PDO: 如何執行資料庫中的全文搜索 Jul 30, 2023 pm 04:33 PM

PHP和PDO:如何執行資料庫中的全文搜尋在現代的Web應用程式中,資料庫是一個很重要的組成部分。當我們需要從大量的資料中搜尋特定的資訊時,全文搜尋是一種非常有用的功能。 PHP和PDO(PHPDataObjects)提供了一種簡單且強大的方法來執行資料庫中的全文搜尋。本文將介紹如何使用PHP和PDO來實現全文搜索,並提供一些範例程式碼來示範這個過程。首先

See all articles
PDO::PARAM_BOOL (integer) 表示布尔数据类型。
PDO::PARAM_NULL (integer) 表示 SQL 中的 NULL 数据类型。
PDO::PARAM_INT (integer) 表示 SQL 中的整型。
PDO::PARAM_STR (integer) 表示 SQL 中的 CHAR、VARCHAR 或其他字符串类型。
PDO::PARAM_LOB (integer) 表示 SQL 中大对象数据类型。
PDO::PARAM_STMT (integer) 表示一个记录集类型。当前尚未被任何驱动支持。
PDO::PARAM_INPUT_OUTPUT (integer) 指定参数为一个存储过程的 INOUT 参数。必须用一个明确的 PDO::PARAM_* 数据类型跟此值进行按位或。
PDO::FETCH_LAZY (integer) 指定获取方式,将结果集中的每一行作为一个对象返回,此对象的变量名对应着列名。PDO::FETCH_LAZY 创建用来访问的对象变量名。在 PDOStatement::fetchAll() 中无效。
PDO::FETCH_ASSOC (integer) 指定获取方式,将对应结果集中的每一行作为一个由列名索引的数组返回。如果结果集中包含多个名称相同的列,则PDO::FETCH_ASSOC每个列名只返回一个值。
PDO::FETCH_NAMED (integer) 指定获取方式,将对应结果集中的每一行作为一个由列名索引的数组返回。如果结果集中包含多个名称相同的列,则PDO::FETCH_ASSOC每个列名 返回一个包含值的数组。
PDO::FETCH_NUM (integer) 指定获取方式,将对应结果集中的每一行作为一个由列号索引的数组返回,从第 0 列开始。
PDO::FETCH_BOTH (integer) 指定获取方式,将对应结果集中的每一行作为一个由列号和列名索引的数组返回,从第 0 列开始。
PDO::FETCH_OBJ (integer) 指定获取方式,将结果集中的每一行作为一个属性名对应列名的对象返回。
PDO::FETCH_BOUND (integer) 指定获取方式,返回 TRUE 且将结果集中的列值分配给通过 PDOStatement::bindParam() 或 PDOStatement::bindColumn() 方法绑定的 PHP 变量。
PDO::FETCH_COLUMN (integer) 指定获取方式,从结果集中的下一行返回所需要的那一列。
PDO::FETCH_CLASS (integer) 指定获取方式,返回一个所请求类的新实例,映射列到类中对应的属性名。

注意: 如果所请求的类中不存在该属性,则调用 __set() 魔术方法

PDO::FETCH_INTO (integer) 指定获取方式,更新一个请求类的现有实例,映射列到类中对应的属性名。
PDO::FETCH_FUNC (integer) 允许在运行中完全用自定义的方式处理数据。(仅在 PDOStatement::fetchAll() 中有效)。
PDO::FETCH_GROUP (integer) 根据值分组返回。通常和 PDO::FETCH_COLUMN 或 PDO::FETCH_KEY_PAIR 一起使用。
PDO::FETCH_UNIQUE (integer) 只取唯一值。
PDO::FETCH_KEY_PAIR (integer) 获取一个有两列的结果集到一个数组,其中第一列为键名,第二列为值。自 PHP 5.2.3 起可用。
PDO::FETCH_CLASSTYPE (integer) 根据第一列的值确定类名。
PDO::FETCH_SERIALIZE (integer) 类似 PDO::FETCH_INTO ,但是以一个序列化的字符串表示对象。自 PHP 5.1.0 起可用。从 PHP 5.3.0 开始,如果设置此标志,则类的构造函数从不会被调用。
PDO::FETCH_PROPS_LATE (integer) 设置属性前调用构造函数。自 PHP 5.2.0 起可用。
PDO::ATTR_AUTOCOMMIT (integer) 如果此值为 FALSE ,PDO 将试图禁用自动提交以便数据库连接开始一个事务。
PDO::ATTR_PREFETCH (integer) 设置预取大小来为你的应用平衡速度和内存使用。并非所有的数据库/驱动组合都支持设置预取大小。较大的预取大小导致性能提高的同时也会占用更多的内存。
PDO::ATTR_TIMEOUT (integer) 设置连接数据库的超时秒数。
PDO::ATTR_ERRMODE (integer) 关于此属性的更多信息请参见 错误及错误处理 部分。
PDO::ATTR_SERVER_VERSION (integer) 此为只读属性;返回 PDO 所连接的数据库服务的版本信息。
PDO::ATTR_CLIENT_VERSION (integer) 此为只读属性;返回 PDO 驱动所用客户端库的版本信息。
PDO::ATTR_SERVER_INFO (integer) 此为只读属性。返回一些关于 PDO 所连接的数据库服务的元信息。
PDO::ATTR_CONNECTION_STATUS (integer)
PDO::ATTR_CASE (integer) 用类似 PDO::CASE_* 的常量强制列名为指定的大小写。
PDO::ATTR_CURSOR_NAME (integer) 获取或设置使用游标的名称。当使用可滚动游标和定位更新时候非常有用。
PDO::ATTR_CURSOR (integer) 选择游标类型。 PDO 当前支持 PDO::CURSOR_FWDONLY 和 PDO::CURSOR_SCROLL。一般为 PDO::CURSOR_FWDONLY,除非确实需要一个可滚动游标。
PDO::ATTR_DRIVER_NAME (string) 返回驱动名称。

使用 PDO::ATTR_DRIVER_NAME 的例子:

<?php
if ($db->getAttribute(PDO::ATTR_DRIVER_NAME) == 'mysql') {
  echo "Running on mysql; doing something mysql specific here\n";
}
?>
登入後複製
PDO::ATTR_ORACLE_NULLS (integer) 在获取数据时将空字符串转换成 SQL 中的 NULL 。
PDO::ATTR_PERSISTENT (integer) 请求一个持久连接,而非创建一个新连接。关于此属性的更多信息请参见 连接与连接管理 。
PDO::ATTR_STATEMENT_CLASS (integer)  
PDO::ATTR_FETCH_CATALOG_NAMES (integer) 将包含的目录名添加到结果集中的每个列名前面。目录名和列名由一个小数点分开(.)。此属性在驱动层面支持,所以有些驱动可能不支持此属性。
PDO::ATTR_FETCH_TABLE_NAMES (integer) 将包含的表名添加到结果集中的每个列名前面。表名和列名由一个小数点分开(.)。此属性在驱动层面支持,所以有些驱动可能不支持此属性。
PDO::ATTR_STRINGIFY_FETCHES (integer)  
PDO::ATTR_MAX_COLUMN_LEN (integer)  
PDO::ATTR_DEFAULT_FETCH_MODE (integer) 自 PHP 5.2.0 起可用。
PDO::ATTR_EMULATE_PREPARES (integer) 自 PHP 5.1.3 起可用。
PDO::ERRMODE_SILENT (integer) 如果发生错误,则不显示错误或异常。希望开发人员显式地检查错误。此为默认模式。关于此属性的更多信息请参见 错误与错误处理 。
PDO::ERRMODE_WARNING (integer) 如果发生错误,则显示一个 PHP E_WARNING 消息。关于此属性的更多信息请参见 错误与错误处理。
PDO::ERRMODE_EXCEPTION (integer) 如果发生错误,则抛出一个 PDOException 异常。关于此属性的更多信息请参见 错误与错误处理。
PDO::CASE_NATURAL (integer) 保留数据库驱动返回的列名。
PDO::CASE_LOWER (integer) 强制列名小写。
PDO::CASE_UPPER (integer) 强制列名大写。
PDO::NULL_NATURAL (integer)  
PDO::NULL_EMPTY_STRING (integer)  
PDO::NULL_TO_STRING (integer)  
PDO::FETCH_ORI_NEXT (integer) 在结果集中获取下一行。仅对可滚动游标有效。
PDO::FETCH_ORI_PRIOR (integer) 在结果集中获取上一行。仅对可滚动游标有效。
PDO::FETCH_ORI_FIRST (integer) 在结果集中获取第一行。仅对可滚动游标有效。
PDO::FETCH_ORI_LAST (integer) 在结果集中获取最后一行。仅对可滚动游标有效。
PDO::FETCH_ORI_ABS (integer) 根据行号从结果集中获取需要的行。仅对可滚动游标有效。
PDO::FETCH_ORI_REL (integer) 根据当前游标位置的相对位置从结果集中获取需要的行。仅对可滚动游标有效。
PDO::CURSOR_FWDONLY (integer) 创建一个只进游标的 PDOStatement 对象。此为默认的游标选项,因为此游标最快且是 PHP 中最常用的数据访问模式。
PDO::CURSOR_SCROLL (integer) 创建一个可滚动游标的 PDOStatement 对象。通过 PDO::FETCH_ORI_* 常量来控制结果集中获取的行。
PDO::ERR_NONE (string) 对应 SQLSTATE '00000',表示 SQL 语句没有错误或警告地成功发出。当用 PDO::errorCode() 或 PDOStatement::errorCode() 来确定是否有错误发生时,此常量非常方便。在检查上述方法返回的错误状态代码时,会经常用到。
PDO::PARAM_EVT_ALLOC (integer) 分配事件
PDO::PARAM_EVT_FREE (integer) 解除分配事件
PDO::PARAM_EVT_EXEC_PRE (integer) 执行一条预处理语句之前触发事件。
PDO::PARAM_EVT_EXEC_POST (integer) 执行一条预处理语句之后触发事件。
PDO::PARAM_EVT_FETCH_PRE (integer) 从一个结果集中取出一条结果之前触发事件。
PDO::PARAM_EVT_FETCH_POST (integer) 从一个结果集中取出一条结果之后触发事件。
PDO::PARAM_EVT_NORMALIZE (integer) 在绑定参数注册允许驱动程序正常化变量名时触发事件。