phppdo,php Pdo对象

http://www.itjxue.com  2023-01-21 15:42  来源:未知  点击次数: 

Php中的pdo是什么意思啊?举个例子指点迷津??!

就是操作数据库的方法,

pdo就是把操作数据库的函数封装成一个pdo类,其间做了安全验证而已。

在使用PDO之前首先要设置PHP.INI文件,使PHP支持PDO,因为PHP5默认是不支持的。在PHP安装目录下找到PHP.INI文件,打开并搜索extension=php_pdo.dll 和 extension=php_pdo_mysql.dll,将前面的分号(;)去掉,重启apache即可。

接下来我们就开始写PHP代码了,首先是连接数据库,看下面的例子:

!--?php

define('DB_NAME', 'pdo_test');

define('DB_USER', 'root');

define('DB_PASSWORD', '');

define('DB_HOST', 'localhost');

define('DB_CHARSET', 'utf8');

try {

$DBH = new PDO('mysql:host='.DB_HOST.';dbname='.DB_NAME, DB_USER, DB_PASSWORD);

$DBH---exec('SET CHARACTER SET '.DB_CHARSET);

$DBH-exec('SET NAMES '.DB_CHARSET);

} catch (PDOException $e) {

print "Error!: " . $e-getMessage() . "br";

die();

}

?

连接成功后,我们需要对数据库中的数据进行增删改查操作,这里主要用到exec和query两个函数。

示例:

!--?php

//增加数据

$sql_insert = 'Insert INTO wp_options(blog_id,option_name,option_value,autoload) VALUES (0,'.time().rand(1,100).','.time().rand(1,100).',\'no\')';

$back = $DBH---exec($sql_insert); //返回 bool 的true or fal

$lastInsertId = $DBH-lastInsertId();

//删除数据

$sql_delete = 'Delete FROM wp_options Where option_id='.$lastInsertId;

$back = $DBH-exec($sql_delete); //返回 bool 的true or fal

$lastInsertId = $DBH-lastInsertId();

//更新数据

$sql_update = 'Update wp_options SET option_name = \''.time().rand(1,100).'\' Where option_id='.$lastInsertId;

$lastUpdateId = $DBH-lastInsertId(); //返回的对应的操作的id

//查询数据

$sql_select = 'Select option_id FROM wp_options orDER BY option_id DESC LIMIT 4 ';

$back = $DBH-query($sql_select); //返回一个对象 这个对象可以用foreach 直接遍历循环 循环的为查询的结果集

$back = $DBH-query($sql_select)-fetch(); //返回一条数据结果 这个对象可以用foreach 直接遍历循环 循环的为查询的结果集

$back = $DBH-query($sql_select)-fetchAll(); //返回一个数组 这个对象可以用foreach 直接遍历循环 循环的为查询的结果集

$back = $DBH-query($sql_select)-fetchColumn(0); //返回一个字段字符串,这个字符串是返回的记录的第一条记录的第一个字段

?

到这里,PDO的基本操作基本上结束了。对于一般的企业网站,小型的管理系统基本上能满足了,但是,如果我们开发大型网站或者逻辑较复杂的管理系统,仅仅靠数据的读写是远远不够的,我们可能还需要对数据库的存储过程、事务等对象进行操作,下面我们继续看看用PDO是如何实现的。如果还有更多问题可以去后盾网论坛问题求助专区,希望我的回答对你有帮助!

php5.5 怎么配置pdo

PDO(PHP Data Object) 是PHP 5 中加入的东西,是PHP 5新加入的一个重大功能,因为在PHP 5以前的php4/php3都是一堆的数据库扩展来跟各个数据库的连接和处理,什么 php_mysql.dll、php_pgsql.dll、php_mssql.dll、php_sqlite.dll等等。?

PHP6中也将默认使用PDO的方式连接,mysql扩展将被作为辅助?

2.PDO配置?

PHP.ini中,去掉"extension=php_pdo.dll"前面的";"号,若要连接数据库,还需要去掉与PDO相关的数据库扩展前面的";"号,然后重启Apache服务器即可。?

extension=php_pdo.dll?

extension=php_pdo_mysql.dll?

extension=php_pdo_pgsql.dll?

extension=php_pdo_sqlite.dll?

extension=php_pdo_mssql.dll?

extension=php_pdo_odbc.dll?

extension=php_pdo_firebird.dll?

......?你还是去后盾人上面看看里面有很多关于这类php之类的教学讲解视频哦⊙?⊙!

为什么 PHP 应该使用 PDO 方式访问数据库

1、方便不同数据库之间的切换

数据库有很多种,比如mysql,mysqli,Oracle,Access等等,使用pdo方式连接数据库,只需要定义DSN即可以连接各种类型的数据库

2、PDO有预处理机制,数据库操作更快,而且预处理机制可以有效的防止数据注入,降低数据库被黑客攻击的可能

PHP的PDO使用:

引入smarty.class.php类没有

$pdo = new PDO("mysql:host=localhost;dbname=newsdb;charset=utf8","root","root");

最好定义一下字符集

php pdo 怎么获取查询出来的结果集

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);

?

(责任编辑:IT教学网)

更多

推荐站内动态文章