连接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 学习笔记详解 #### 一、PDO简介 PDO(PHP Data Objects)是PHP 5中引入的一个数据库访问扩展,在PHP 6中它将成为连接数据库的标准方式,并逐步取代旧有的数据库连接方法。PDO的主要目标是为PHP提供一...
在本文档中,我们将深入探讨如何使用PDO连接数据库,以及其主要特性。 首先,创建一个新的PDO实例是连接数据库的第一步。以下是一个基本的PDO连接示例: ```php $dbh = new PDO("mysql:host=localhost;dbname=...
### PHP PDO函数简介 #### 一、概述 PDO(PHP Data Objects)作为PHP的...通过学习PDO的基本用法和高级特性,开发者可以更加高效地开发出安全可靠的Web应用程序。随着PHP的发展,PDO已成为处理数据库的最佳实践之一。
PHP中的PDO_INFORMIX扩展是为了让PHP应用程序能够与Informix数据库进行交互而设计的。PDO(PHP Data Objects)是一个PHP的数据库访问...通过不断学习和实践,开发者可以利用PDO_INFORMIX实现高效、可靠的数据库应用。
在PHP开发中,PDO(PHP Data Objects)是一个用于数据库访问的扩展,提供了统一的API来访问多种数据库系统。...`Db.class.php`和`Conf`文件是实现这一目标的关键组件,而`demo.php`则是学习和理解这些功能的起点。
1. **PDO API**:学习如何创建PDO对象,建立数据库连接,执行查询,处理结果集,以及利用预处理语句和事务。 2. **PHP数据类型与MySQL数据类型的映射**:理解如何在PHP和MySQL之间转换数据类型,这对于正确存储和...
这极大地提高了开发效率,因为开发者不必学习和记忆每个数据库特定的语法和函数。此外,PDO还支持预处理语句,这可以有效防止SQL注入攻击,增强了应用程序的安全性。 PDO扩展的一些核心功能包括: 1. **连接管理**...
总结起来,这个“PHP PDO与XML留言板”项目提供了一个全面的学习平台,涵盖了数据库操作、用户认证、数据安全、文件上传等多个核心的PHP Web开发技能。通过实践此项目,开发者能够深化对PHP PDO和XML的理解,同时...
这个脚本可能包含了创建连接、执行查询、处理结果等基本操作,对于初学者来说是个很好的学习资源。 总的来说,这个压缩包内容适合那些需要在Windows环境下用PHP连接到SQL Server,特别是SQL Server 2008的开发者。...
在嵌入式系统开发中,CANopen是一种广泛应用的通信协议,尤其在工业自动化领域。它基于控制器局域网(CAN)物理层,为CAN网络...学习这部分内容将有助于开发者深入理解CANopen协议并有效应用于实际的嵌入式系统设计。
PDO(Process Data Object)和SDO(Service Data Object)是CANopen通信协议中的核心概念,它们在设备间传输数据和管理参数...通过深入学习PDO_SDO.pdf,初学者可以掌握这些基本概念,并逐步成为CANopen通信的专家。
首先,PDO的主要优势在于其通用性,它支持多种数据库系统,如MySQL、PostgreSQL、SQLite等,通过相同的API进行操作,降低了学习成本和代码的迁移难度。此外,PDO还提供了预处理语句,有效防止SQL注入攻击,提高安全...
总之,学习和熟练使用PHP PDO对于任何PHP开发者来说都是至关重要的,无论是在小规模项目还是大型企业级应用中,都能提供强大而灵活的数据库访问能力。通过封装类,我们可以进一步提升代码的复用性和可读性,使数据库...
通过这个例程,开发者不仅可以学习如何结合使用FreeRTOS和CanFestival,还能了解到PDO循环同步在实际项目中的应用。在实践中,开发者应仔细研究代码,理解每个部分的作用,以便在未来的设计中灵活运用这些技术。
对于学习和理解MVC模式以及PHP数据库操作的初学者来说,这是一个很好的实践项目。同时,对于有一定经验的开发者,这样的框架可以作为一个基础,进一步扩展和优化,以满足更复杂的应用场景需求。
通过学习这个项目,开发者可以了解如何在PHP中有效地使用PDO进行数据库操作,包括如何正确配置数据库连接,如何编写安全的SQL语句,以及如何利用PDO的特性来优化应用程序的性能和数据安全性。此外,自定义数据库类的...
标题中的"04 canOpen PDO非循环同步.zip"指的是一个关于CANopen...为了进一步学习和实践,需要解压文件并详细研究其中的内容。这将有助于理解CANopen协议的工作原理,以及如何在实际项目中利用PDO进行非循环同步通信。
在本文中,我们将深入探讨如何在STM32F4微控制器上移植并应用Canfestival库,以便实现CANopen协议,以及如何配置PDO(Process Data Object)进行定时发送。CANopen是基于CAN(Controller Area Network)总线的一种...
PDO(PHP Data Objects)是PHP 5引入的一个重要特性,用于提供数据库访问的统一接口。在PHP 6中,PDO成为了默认的数据库处理方式,原有的数据库...通过学习和掌握PDO,开发者能够更好地应对多数据库环境下的项目需求。
通过学习和实践这个案例,开发者可以加深对PHP、PDO和MySQL的理解,提高自己的Web开发技能。如果你在实现过程中遇到问题,可以参考提供的数据库表结构和字段,或者在评论区提问,获得帮助和解答。