本文共 3445 字,大约阅读时间需要 11 分钟。
...ss Model{ protected $tableName="";//表名称 protected $pOb;//pdo类对象 function __construct(){ $pdo=new PDO("mysql:host=".DB_HOST.";dbname=".DB_NAME,DB_USERNAME, ...2. php pdo类库用法示例,php pdo模块入门例子
简介:
PDO扩展为PHP访问数据库定义了一个轻量级的、一致性的接口,它提供了一个数据访问抽象层,这样,无论使用什么数据库,都可以通过一致的函数执行查询和获取数据。
即提供了一个数据库访问抽象层能使得我们通过一致的函数和写法来操作不同数据库,有利于日后对数据库的迁移,当然也有安全方面的提升。
对比:
php 操作数据库以mysql 为例常用的方法有 php_mysql , php_mysqli , pdo
1.php_mysql 和 php_mysqli 都是不可以移植的,只能应用于mysql 数据库, 而pdo 是可以轻易移植的。
2.php_mysql 是我们初学php 学的操作数据库的函数,但是其实他基本上很少使用了,其中最重要的一点就是容易造成安全问题。
存在SQL注入,于是php 提供了函数mysql_real_escape_string 如果存在很多的变量每一个都要经过 mysql_real_escape_string
反而变的很麻烦。
3.pdo 支持预处理,预处理功能可以有效的避免sql注入,并提高效率。
4.php_mysqli 和 pdo 都支持面向对象。
5.pdo 长连接方式性能上优于php_mysqli (参考网上资料)
php_mysql 方式优势已经不大了,php_mysqli 最致命的就是不能移植到其它数据库,除非你很确定不会更换数据库。显然 pdo方式连接数据库将会是一种趋势。
pdo简单操作数据库:
首先php 要启用php-pdo 相关扩展
getMessage();
}
插入 数据
query('set names utf8');
$sql = "INSERT INTO la_comments SET nick_name='formPdo',email='pdo@pdo.com',comment='中文comment',page_id='11',created_at=NOW(),updated_at=NOW()";
$res1 = $pdo->exec($sql);
var_dump($res1);
此时去数据库看到中文 可能是乱码,是因为编码问题各种错乱的原因
添加代码
$pdo->query('set names utf8');数据存储仍存在错误,是因为有可能你的header 是gbk 编码
网上总结的 编码需要注意的问题如下:
一、服务端程序声明编码,比如header("Content-type: text/html; charset=utf-8");
二、客户端声明编码,比如
三、数据库编码、表以及字段的编码
四、文件本身编码属性
五、连接数据库时请声明编码,比如$pdo->query('set names utf8');
只要上述都一致了编码问题一般都会解决的。
完整示例代码:(文件本身也应该使用utf8 编码)
$dbType = 'mysql';
$dbUser = 'root';
$dbPass = 'simael';
$dbhost = 'localhost';
$dbName = 'pdotest';
$dsn="$dbType:host=$dbhost;dbname=$dbName";
try{
$pdo = new PDO($dsn, $dbUser, $dbPass,array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES'utf8';"));
//$pdo = new PDO($dsn, $dbUser, $dbPass);
echo "PDO成功连接MySQL数据库!";
}catch(PDOException $exception){
echo $exception->getMessage();
}
$pdo->query('set names utf8');
$sql = "INSERT INTO la_comments SET nick_name='formPdo',email='pdo@pdo.com',comment='中文comment',page_id='11',created_at=NOW(),updated_at=NOW()";
$res1 = $pdo->exec($sql);
var_dump($res1);
$sql = "SELECT * FROM la_comments";
$res2 = $pdo->query($sql);
while($row = $res2->fetch()){
print_r($row);
echo '
';
}
$pdo = null;
?>
以上就介绍了php pdo 简单使用 (一),包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。
...ss Model{ protected $tableName="";//表名称 protected $pOb;//pdo类对象 function __construct(){ $pdo=new PDO("mysql:host=".DB_HOST
1.PDO简介 PDO(PHP Data Object) 是PHP 5 中加入的东西,是PHP 5新加入的一个重大功能,因为在PHP 5以前的php4/php3都是一堆的数据库扩展来跟各个数据库的连接和处理,什么 php_mysql.dll、php_pgsql.dll、php_mssql.dll、p
PDO是一个“数据库访问抽象层”,作用是统一各种数据库的访问接口,与mysql和mysqli的函数库相比,PDO让跨数据库的使用更具有亲和力.与ADODB和MDB2相比,PDO更高效。目前而言,实现“数据库抽象层”任重而道远,使用PDO这...
请问要怎么在class中使用pdo?
'''$pdo = new PDO();
class a{ function a(){
$pdo->query();
} function b(){
$pdo->exec();
}
}'''
就是这样,在a类里的a与b方法中使用呢?
...
POD扩展是在PHP5中加入,该扩展提供PHP内置类 PDO来对数据库进行访问,不同数据库使用相同的方法名,解决数据库连接不统一的问题。PDO的目标
提供一种轻型、清晰、方便的 API统一各种不同 RDBMS 库的共有特性...
PDO简介
PDO 是一个“数据库访问抽象层”,作用是统一各种数据库(MySQL、MSSQL、Oracle、DB2、PostgreSQL……)的访问接口,能轻松的在不同的数据库之间完成切换,使得数据库间的移植容易实现。
PDO 驱动
...
1.PDO简介PDO(PHP Data Object) 是PHP 5 中加入的东西,是PHP 5新加入的一个重大功能,因为在PHP 5以前的php4/php3都是一堆的数据库扩展来跟各个数据库的连接和处理,什么 php_mysql.dll、php_pgsql.dll、php_mssql.dll、ph
... 说明PDO::PARAM_BOOL (integer) 表示布尔数据类型。 PDO::PARAM_NULL (integer) 表示 SQL 中的 NULL 数据类型。
PDO的环境配置:开启支持PDO 在php.ini配置文件中开启:extension=php_pdo.dllextension=php_pdo_mysql.dll在PDO操作中涉及到类:PDO、PDOStatement(预处理对象)、PDOException(异常类)一、 PDO类的构造方法:---
PDO如何进行异常处理?本篇文章给大家带来的内容是介绍PDO的三种处理错误的方式,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。PDO提供了三种处理错误的方式PDO::...
转载地址:http://gtznv.baihongyu.com/