PHP采用pdo方式访问数据库时,exec方法和prepare方法有什么区别

PHP采用pdo方式访问数据库时,exec方法和prepare方法有什么区别,第1张

区别是:

PHP采用pdo方式访问数据库时,您不必再使用再为它们封装数据库 *** 作类,只需要使用PDO接口中的方法就可以对各种数据库进行 *** 作。

本文实例讲述了PHP使用pdo连接access数据库并循环显示数据 *** 作。分享给大家供大家参考,具体如下:

PDO连接与查询:

try

{

$conn

=

new

PDO("odbc:driver={microsoft

access

driver

(*.mdb)}

dbq=".realpath("MyDatabase.mdb"))

or

die("链接错误!")

//echo

"链接成功!"

}

catch(PDOException

$e){

echo

$e->getMessage()

}

$sql

=

"select

*

from

users"

1.

foreach()方法

foreach

($conn->query($sql)

as

$row)

{

$row["UserID"]

$row["UserName"]

$row["UserPassword"]

}

2.

while()方法

$rs

=

$conn->query($sql)

$rs->setFetchMode(PDO::FETCH_NUM)

while($row=$rs->fetch()){

$row[0]

$row[1]

$row[2]

}

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)

?>

更多关于PHP相关内容感兴趣的读者可查看本站专题:《PHP基于pdo *** 作数据库技巧总结》、《php+Oracle数据库程序设计技巧总结》、《PHP+MongoDB数据库 *** 作技巧大全》、《php面向对象程序设计入门教程》、《php字符串(string)用法总结》、《php+mysql数据库 *** 作入门教程》及《php常见数据库 *** 作技巧汇总》

希望本文所述对大家PHP程序设计有所帮助。

您可能感兴趣的文章:PHP使用PDO连接ACCESS数据库PHP数据库链接类(PDO+Access)实例分享php中mysql连接方式PDO使用详解关于php连接mssql:pdo

odbc

sql

serverPhp中用PDO查询Mysql来避免SQL注入风险的方法php中在PDO中使用事务(Transaction)全新的PDO数据库 *** 作类php版(仅适用Mysql)php使用pdo连接并查询sql数据库的方法php使用pdo连接mssql

server数据库实例PHP实现PDO的mysql数据库 *** 作类

pdo是什么

PDO(PHP Data Objects)是一种在PHP里连接数据库的使用接口。PDO与mysqli曾经被建议用来取代原本PHP在用的mysql相关函数,基于数据库使用的安全性,因为后者欠缺对于SQL注入的防护。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9772645.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存