扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
1、方便不同数据库之间的切换
创新互联建站是一家集网站建设,田家庵企业网站建设,田家庵品牌网站建设,网站定制,田家庵网站建设报价,网络营销,网络优化,田家庵网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。
数据库有很多种,比如mysql,mysqli,Oracle,Access等等,使用pdo方式连接数据库,只需要定义DSN即可以连接各种类型的数据库
2、PDO有预处理机制,数据库操作更快,而且预处理机制可以有效的防止数据注入,降低数据库被黑客攻击的可能
区别是:
PHP采用pdo方式访问数据库时,您不必再使用再为它们封装数据库操作类,只需要使用PDO接口中的方法就可以对各种数据库进行操作。
$zx是一个object对象
用$zx-fetchColumn获取多少行数据
fetch(2)中的2是代表
PDO_FETCH_BOTH
表示得到同时包含关联和数字索引的数组.
关闭数据库
$db=null;
php使用PDO抽象层获取查询结果,主要有三种方式:
(1)PDO::query()查询。
看下面这段php代码:
?php //PDO::query()查询
$res = $db-query('select * from user');
$res-setFetchMode(PDO::FETCH_NUM); //数字索引方式
while ($row = $res-fetch()){
print_r($row);
}
?
(2)PDO-exec()处理sql
?php //PDO-exec()处理sql
$db-setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$res = $db-exec("insert into user(id,name) values('','php点点通')");
echo $res;
?
(3)PDO::prepare()预处理执行查询
?php //PDO::prepare()预处理执行查询
$res = $db-prepare("select * from user");
$res-execute();
while ($row = $res-fetchAll()) {
print_r($row);
}
?
setAttribute() 方法是设置属性,常用参数如下:
PDO::CASE_LOWER -- 强制列名是小写
PDO::CASE_NATURAL -- 列名按照原始的方式
PDO::CASE_UPPER -- 强制列名为大写
setFetchMode方法来设置获取结果集的返回值的类型,常用参数如下:
PDO::FETCH_ASSOC -- 关联数组形式
PDO::FETCH_NUM -- 数字索引数组形式
PDO::FETCH_BOTH -- 两者数组形式都有,这是默认的
PDO::FETCH_OBJ -- 按照对象的形式,类似于以前的 mysql_fetch_object()
对上面总结如下:
查询操作主要是PDO::query()、PDO::exec()、PDO::prepare()。
PDO-query() — 处理一条SQL语句,并返回一个“PDOStatement”
PDO-exec() — 处理一条SQL语句,并返回所影响的条目数
PDO::prepare()主要是预处理操作,需要通过$rs-execute()来执行预处理里面的SQL语句
最后介绍两个常用的函数:
(1)fetchColumn()获取指定记录里一个字段结果,默认是第一个字段!
?php
$res = $db-query('select * from user');
//获取指定记录里第二个字段结果
$col = $res-fetchColumn(1);
echo $col;
?
(2)fetchAll(),从一个结果集中获取数据,然后存放在关联数组中
?php
$res = $db-query('select * from user');
$res_arr =$res-fetchAll();
print_r($res_arr);
?
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流