php+pdo的使用,phppdo简单使用(一)

简介:

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教程有兴趣的朋友有所帮助。 本条技术文章来源于互联网,如果无意侵犯您的权益请点击此处反馈版权投诉 本文系统来源:php中文网

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值