`
gabrieltong
  • 浏览: 16280 次
  • 性别: Icon_minigender_1
  • 来自: 大连
最近访客 更多访客>>
社区版块
存档分类
最新评论

PDO学习

    博客分类:
  • php
阅读更多

连接mysql 数据库

<?php 
$dsn = 'mysql:host=localhost;dbname=world;'; 
$user = 'user'; 
$password = 'secret'; 
try 
{
 $dbh = new PDO($dsn, $user, $password); 
} 
catch (PDOException $e) 
{
 echo 'Connection failed: ' . $e->getMessage(); 
} 
?> 

 连接sqlite

<?php 
$dsn = 'sqlite2:"C:\sqlite\world.db"'; 
try 
{
 $dbh = new PDO($dsn); 
} 
catch (PDOException $e) 
{
 echo 'Connection failed: ' . $e->getMessage(); 
} 
?>

连接postgreSQL

<?php 
$dsn = 'pgsql:host=localhost port=5432 dbname=world user=user '; 
$dsn .= 'password=secret'; 
try 
{
 $dbh = new PDO($dsn); 
} 
catch (PDOException $e) 
{
 echo 'Connection failed: ' . $e->getMessage(); 
} 
?> 

查询数据

<?php 
$country = 'USA';
try {
    $dbh = new PDO($dsn, $user, $password);
    $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $sql = 'Select * from city where CountryCode ='.$dbh->quote($country);
    foreach ($dbh->query($sql) as $row) {
        print $row['Name']."\t";
        print $row['CountryCode']."\t";
        print $row['Population']."\n";
    }
}
catch(PDOException $e) {
    echo 'PDO Exception Caught.  ';
    echo 'Error with the database: <br />';
    echo 'SQL Query: ',$sql;
    echo 'Error: '.$e->getMessage();
}
?>

 使用prepare和excute

$country = 'USA';
try {
    $dbh = new PDO($dsn, $user, $password);
    $sql = 'Select * from city where CountryCode =:country';
    $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $stmt = $dbh->prepare($sql);
    $stmt->bindParam(':country', $country, PDO::PARAM_STR);
    $stmt->execute();
    while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
        print $row['Name']."\t";
        print $row['CountryCode']."\t";
        print $row['Population']."\n";
    }
}
catch(PDOException $e) {
    echo 'PDO Exception Caught.  ';
    echo 'Error with the database: <br />';
    echo 'SQL Query: ',$sql;
    echo 'Error: '.$e->getMessage();
}

 

返回每个结果为对象

while ($row = $stmt->fetchObject()) {
    print $row->Name."\t";
    print $row->CountryCode."\t";
    print $row->Population."\n";
}

 

PDO statement设置错误模式

  • PDO::ERRMODE_SILENT
  • PDO::ERRMODE_WARNING
  • PDO::ERRMODE_EXCEPTION

得到查询结果的行数

方法一

$stmt->execute();
$stmt->rowCount();

方法二

$query = "select count(*) from `` where condition";
$stmt->execut();
$stmt->fetchColumn()

注意:方法一不一定对每个数据库都有效

得到删除,更新,添加影响的行数

$stmt->execute();
$stmt->rowCount();

取得最后插入数据的id

$stmt->lastInsertId()

 pdo transaction

try {
    $dbh = new PDO($dsn, $user, $password);
    $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $dbh->beginTransaction();
    $sql = 'INSERT INTO transactions (acctNo, type, value, adjustment) VALUES (:acctNo, :type, :value, :adjust)';
    $stmt = $dbh->prepare($sql);
    $stmt->execute(array(':acctNo'=>$acctFrom, ':type'=>$withdrawal, ':value'=>$amount, ':adjust'=>'-'));
    $sql = 'INSERT INTO transactions (acctNo, type, value, adjustment) VALUES (:acctNo, :type, :value, :adjust)';
    $stmt = $dbh->prepare($sql);
    $stmt->execute(array(':acctNo'=>$acctTo, ':type'=>$deposit, ':value'=>$amount, ':adjust'=>'+'));
    $dbh->commit();
}
catch(Exception $e) {
    $dbh->rollBack();
    //  further error handling here
}
 
分享到:
评论

相关推荐

    PHP PDO 学习笔记

    ### PHP PDO 学习笔记详解 #### 一、PDO简介 PDO(PHP Data Objects)是PHP 5中引入的一个数据库访问扩展,在PHP 6中它将成为连接数据库的标准方式,并逐步取代旧有的数据库连接方法。PDO的主要目标是为PHP提供一...

    pdo详解(中文教程)

    在本文档中,我们将深入探讨如何使用PDO连接数据库,以及其主要特性。 首先,创建一个新的PDO实例是连接数据库的第一步。以下是一个基本的PDO连接示例: ```php $dbh = new PDO("mysql:host=localhost;dbname=...

    PHP PDO函数简介

    ### PHP PDO函数简介 #### 一、概述 PDO(PHP Data Objects)作为PHP的...通过学习PDO的基本用法和高级特性,开发者可以更加高效地开发出安全可靠的Web应用程序。随着PHP的发展,PDO已成为处理数据库的最佳实践之一。

    php中pdo_informix

    PHP中的PDO_INFORMIX扩展是为了让PHP应用程序能够与Informix数据库进行交互而设计的。PDO(PHP Data Objects)是一个PHP的数据库访问...通过不断学习和实践,开发者可以利用PDO_INFORMIX实现高效、可靠的数据库应用。

    php完美pdo类封装

    在PHP开发中,PDO(PHP Data Objects)是一个用于数据库访问的扩展,提供了统一的API来访问多种数据库系统。...`Db.class.php`和`Conf`文件是实现这一目标的关键组件,而`demo.php`则是学习和理解这些功能的起点。

    PDO_MYSQL-1.0.2.tgz

    1. **PDO API**:学习如何创建PDO对象,建立数据库连接,执行查询,处理结果集,以及利用预处理语句和事务。 2. **PHP数据类型与MySQL数据类型的映射**:理解如何在PHP和MySQL之间转换数据类型,这对于正确存储和...

    pdo.rar_php pdo

    这极大地提高了开发效率,因为开发者不必学习和记忆每个数据库特定的语法和函数。此外,PDO还支持预处理语句,这可以有效防止SQL注入攻击,增强了应用程序的安全性。 PDO扩展的一些核心功能包括: 1. **连接管理**...

    php pdo和xml留言板

    总结起来,这个“PHP PDO与XML留言板”项目提供了一个全面的学习平台,涵盖了数据库操作、用户认证、数据安全、文件上传等多个核心的PHP Web开发技能。通过实践此项目,开发者能够深化对PHP PDO和XML的理解,同时...

    php-pdo-sqlsrv 各版本 和 sqlncli 64

    这个脚本可能包含了创建连接、执行查询、处理结果等基本操作,对于初学者来说是个很好的学习资源。 总的来说,这个压缩包内容适合那些需要在Windows环境下用PHP连接到SQL Server,特别是SQL Server 2008的开发者。...

    YSF4_HAL_CANopen-002. PDO - 数据改变触发.rar

    在嵌入式系统开发中,CANopen是一种广泛应用的通信协议,尤其在工业自动化领域。它基于控制器局域网(CAN)物理层,为CAN网络...学习这部分内容将有助于开发者深入理解CANopen协议并有效应用于实际的嵌入式系统设计。

    PDO_SDO.zip_PDO SDO_canopen_canopen SDO_pdo与sdo_sdo

    PDO(Process Data Object)和SDO(Service Data Object)是CANopen通信协议中的核心概念,它们在设备间传输数据和管理参数...通过深入学习PDO_SDO.pdf,初学者可以掌握这些基本概念,并逐步成为CANopen通信的专家。

    PHP开发笔记系列(一)-PDO使用

    首先,PDO的主要优势在于其通用性,它支持多种数据库系统,如MySQL、PostgreSQL、SQLite等,通过相同的API进行操作,降低了学习成本和代码的迁移难度。此外,PDO还提供了预处理语句,有效防止SQL注入攻击,提高安全...

    PHP PDO的学习,以mysql为例封装类并使用.zip

    总之,学习和熟练使用PHP PDO对于任何PHP开发者来说都是至关重要的,无论是在小规模项目还是大型企业级应用中,都能提供强大而灵活的数据库访问能力。通过封装类,我们可以进一步提升代码的复用性和可读性,使数据库...

    03.例程_PDO循环同步.rar

    通过这个例程,开发者不仅可以学习如何结合使用FreeRTOS和CanFestival,还能了解到PDO循环同步在实际项目中的应用。在实践中,开发者应仔细研究代码,理解每个部分的作用,以便在未来的设计中灵活运用这些技术。

    简单的MVC框架(PDO封装)

    对于学习和理解MVC模式以及PHP数据库操作的初学者来说,这是一个很好的实践项目。同时,对于有一定经验的开发者,这样的框架可以作为一个基础,进一步扩展和优化,以满足更复杂的应用场景需求。

    PHP-MySQL-PDO-Database-Class-master

    通过学习这个项目,开发者可以了解如何在PHP中有效地使用PDO进行数据库操作,包括如何正确配置数据库连接,如何编写安全的SQL语句,以及如何利用PDO的特性来优化应用程序的性能和数据安全性。此外,自定义数据库类的...

    04 canOpen PDO非循环同步.zip

    标题中的"04 canOpen PDO非循环同步.zip"指的是一个关于CANopen...为了进一步学习和实践,需要解压文件并详细研究其中的内容。这将有助于理解CANopen协议的工作原理,以及如何在实际项目中利用PDO进行非循环同步通信。

    09 canOpen PDO定时发送.zip

    在本文中,我们将深入探讨如何在STM32F4微控制器上移植并应用Canfestival库,以便实现CANopen协议,以及如何配置PDO(Process Data Object)进行定时发送。CANopen是基于CAN(Controller Area Network)总线的一种...

    PHP使用PDO教程.doc

    PDO(PHP Data Objects)是PHP 5引入的一个重要特性,用于提供数据库访问的统一接口。在PHP 6中,PDO成为了默认的数据库处理方式,原有的数据库...通过学习和掌握PDO,开发者能够更好地应对多数据库环境下的项目需求。

    PHP+MySql+PDO小案例—文章管理系统

    通过学习和实践这个案例,开发者可以加深对PHP、PDO和MySQL的理解,提高自己的Web开发技能。如果你在实现过程中遇到问题,可以参考提供的数据库表结构和字段,或者在评论区提问,获得帮助和解答。

Global site tag (gtag.js) - Google Analytics