目次
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 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

PHP 致命的エラーの解決策: 未定義メソッド PDO::prepare() の呼び出し PHP 致命的エラーの解決策: 未定義メソッド PDO::prepare() の呼び出し Jun 22, 2023 pm 06:40 PM

PHP は、長い間使用されている人気のある Web 開発言語です。 PHP に統合された PDO (PHP Data Object) クラスは、Web アプリケーションの開発中にデータベースと対話する一般的な方法です。ただし、一部の PHP 開発者がよく遭遇する問題は、PDO クラスを使用してデータベースと対話するときに、次のようなエラーが表示されることです。

PHP の PDO_PGSQL 拡張機能を使用するにはどうすればよいですか? PHP の PDO_PGSQL 拡張機能を使用するにはどうすればよいですか? Jun 02, 2023 pm 06:10 PM

PHP は人気のあるプログラミング言語として、Web 開発の分野で広く使用されています。その中でも、PHP の PDO_PGSQL 拡張機能は一般的に使用されている PHP 拡張機能で、PostgreSQL データベースとの対話型インターフェイスを提供し、PHP と PostgreSQL 間のデータ送信と対話を実現できます。この記事では、PHPのPDO_PGSQL拡張機能の使い方を詳しく紹介します。 1. PDO_PGSQL 拡張機能とは何ですか? PDO_PGSQL は PHP の拡張ライブラリです。

PHP と PDO: 一括挿入と更新を実行する方法 PHP と PDO: 一括挿入と更新を実行する方法 Jul 28, 2023 pm 07:41 PM

PHP と PDO: バッチ挿入およびバッチ更新を実行する方法 はじめに: PHP を使用してデータベース関連アプリケーションを作成する場合、データをバッチ挿入および更新する必要がある状況によく遭遇します。従来のアプローチでは、ループを使用して複数のデータベース操作を実行しますが、この方法は非効率的です。 PHP の PDO (PHPDataObject) は、バッチ挿入および更新操作を実行するためのより効率的な方法を提供します。この記事では、PDO を使用してバッチ挿入および更新操作を実装する方法を紹介します。 1. 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 (JavaScript Object Notation) 形式でデータベースに保存されるデータがますます増えています。一般的に使用されるサーバー側言語として、PHP の PDO (PHPDataObject) 拡張機能は、データベースを処理および操作するための便利な方法を提供します。本

PHP と PDO: ページング クエリを実行してデータを表示する方法 PHP と PDO: ページング クエリを実行してデータを表示する方法 Jul 29, 2023 pm 04:10 PM

PHP と PDO: ページ内のデータをクエリして表示する方法 Web アプリケーションを開発する場合、ページ内のデータをクエリして表示することは非常に一般的な要件です。ページングにより、一度に一定量のデータを表示できるため、ページの読み込み速度とユーザー エクスペリエンスが向上します。 PHP では、PHP データ オブジェクト (PDO) ライブラリを使用して、ページング クエリとデータの表示の機能を簡単に実現できます。この記事では、PHP で PDO を使用してページごとにデータをクエリおよび表示する方法と、対応するコード例を紹介します。 1. データベースとデータテーブルを作成する

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) 在绑定参数注册允许驱动程序正常化变量名时触发事件。