php使用PDO试行SQL语句的措施深入分析,PHP使用PDO抽象层获得查询结果的不二诀要亲自去做

By admin in 4858.com on 2019年7月7日

本文实例汇报了php使用PDO下exec()函数查询试行后受影响行数的艺术。分享给大家供大家参照他事他说加以考察,具体如下:

正文实例叙述了php使用PDO施行SQL语句的议程。分享给大家供大家参照他事他说加以考察,具体如下:

正文实例陈诉了PHP使用PDO抽象层获得查询结果的诀窍。分享给大家供大家参谋,具体如下:

正文实例陈述了PHP使用pdo连接access数据库并循环显示数据操作。分享给大家供我们参照他事他说加以考察,具体如下:

exec()方法回到施行后受影响的行数

exec()方法

PHP使用PDO抽象层获得查询结果,首要有三种形式:

PDO连接与查询:

语法:int PDO::exec(string statement)

exec()方法再次回到实施后受影响行数,语法如下:

(1)PDO::query()查询。

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

提示:

int PDO::exec(string statement)

看上边这段php代码:

  1. foreach()方法

参数statement是要试行的SQL语句。该措施再次来到推行查询时受影响的行数,平日用于insert,delete和update语句中。但无法用于select查询,重临查询结果。

参数statement是要试行的SQL语句。该形式重返推行查询时受影响的行数,平常状态下用于INSERT,DELETE和UPDATE语句中。

<?php
//PDO::query()查询
$psql="SELECT * FROM user";
$res = $db->query($psql);
$res->setFetchMode(PDO::FETCH_NUM); //数字索引方式
while ($row = $res->fetch()){
print_r($row);
}
?>
foreach ($conn->query($sql) as $row) {
$row["UserID"];
$row["UserName"];
$row["UserPassword"];
}

为了印证这一个提醒,上边小编分别对insert,delete,update,select 查询实行测量试验;

例如:

(2)PDO->exec()处理sql

  1. while()方法

INSERT

$dbms='mysql';//数据库类型
$dbName='admin';//使用的数据库
$user='root';//数据库连接用户名
$pwd='password';//数据库连接密码
$host='localhost';//数据库主机名
$dsn="$dbms:host=$host;port=3306;dbname=$dbName";
try{
$pdo=new PDO($dsn,$user,$pwd);//初始化一个PDO对象,就是创建了数据库连接对象$pdo
$query="insert into user(username,password) values('admin','123456')";//需要执行的sql语句
$res=$pdo->exec($query);//执行添加语句并返回受影响行数
echo "数据添加成功,受影响行数为: ".$res;
}catch(Exception $e){
die("Error!:".$e->getMessage().'<br>');
}
<?php
//PDO->exec()处理sql
$psql="INSERT INTO user(id , username) values('' , '张三')";
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$res = $db->exec($psql);
echo $res;
?>
$rs = $conn->query($sql);
$rs->setFetchMode(PDO::FETCH_NUM);
while($row=$rs->fetch()){
$row[0];
$row[1];
$row[2];
}
try{
 $conn=new PDO("mysql:host=$servername;dbname=$dbname", $username,$password);
 $conn->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
 $sql="INSERT INTO `hello`(`firstname`,`lastname`,`email`)values('ye','xianming','1150416034@qq.com'),
  ('xiao','hua','xiaohua@163.com')";
 $conn->exec($sql);
 echo "Insert record success";
}catch(PDOException $e){
  echo "Error:".$e->getMessage();
}

运维结果为:

(3)PDO::prepare()预管理施行查询

php使用PDO抽象层获得查询结果,首要有三种格局:

Delete

数据添加成功,受影响行数为: 1
<?php
//PDO::prepare()预处理执行查询
$psql="SELECT * FROM user";
$res = $db->prepare($psql);
$res->execute();
while ($row = $res->fetchAll()) {
print_r($row);
}
?>

(1)PDO::query()查询。

try{
 $conn=new PDO("mysql:host=$servername;dbname=$dbname",$username,$password);
 $conn->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
 $sql="delete from hello where id=61";
 $conn->exec($sql);
 echo "delete record success";
}catch(PDOException $e){
  echo "Error".$e->getMessage();
}

query()方法

setAttribute() 方法是设置属性,常用参数如下:

看上面这段php代码:

Update

query()方法用于重返实施查询后的结果集,语法如下

PDO::CASE_LOWE瑞鹰 — 强制列名是小写
PDO::CASE_NATURAL —
列名遵照原有的方法
PDO::CASE_UPPE昂Cora — 强制列名字为大写

<?php
//PDO::query()查询
$res = $db->query('select * from user');
$res->setFetchMode(PDO::FETCH_NUM); //数字索引方式
while ($row = $res->fetch()){
print_r($row);
}
?>
try{
 $conn=new PDO("mysql:host=$servername;dbname=$dbname",$username,$password);
 $conn->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
 $sql="UPDATE hello SET firstname='xiao',lastname='ming' WHERE id='62'";
 $conn->exec($sql);
 echo "update record success";
}catch(PDOException $e){
 echo "Error".$e->getMessage();
}

PDOStatement PDO::query(string statement)

setFetchMode措施来安装获取结果集的重回值的项目,常用参数如下:

(2)PDO->exec()处理sql

Select

参数statement 是要实行的SQL语句。它回到的是三个PDOStatement对象

PDO::FETCH_ASSOC — 关联数组方式
PDO::FETCH_NUM —
数字索引数组情势
PDO::FETCH_BOTH —
两者数组情势都有,那是暗中认可的
PDO::FETCH_php使用PDO试行SQL语句的措施深入分析,PHP使用PDO抽象层获得查询结果的不二诀要亲自去做。OBJ —
依据目的的款型,类似于在此此前的 mysql_fetch_object()

<?php
//PDO->exec()处理sql
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$res = $db->exec("insert into user(id,name) values('','php点点通')");
echo $res;
?>
try{
 $conn=new PDO("mysql:host=$servername;dbname=$dbname",$username,$password);
 $conn->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
 $sql="select * from hello";
 $query=$conn->exec($sql);
 for($i=0;$i<count($query);$i++){
  print_r($query);
 }
  echo "select record success";
}catch(PDOException $e){
  echo "Error".$e->getMessage();
}

例如:

对上边总结如下:

(3)PDO::prepare()预处理施行查询

注:上边三种查询格局,最后唯有select查询无法健康实践.

$dbms='mysql';
$dbName='admin';
$user='root';
$pwd='905407339';
$host='localhost';
$dsn="$dbms:host=$host;port=3306;dbname=$dbName";
try{
$pdo=new PDO($dsn,$user,$pwd);
$query="select * from user";
$res=$pdo->query($query);
print_r($res);
}catch(Exception $e){
die("Error!:".$e->getMessage().'<br>');
}

查询操作主若是PDO::query()PDO::exec()PDO::prepare()

<?php
//PDO::prepare()预处理执行查询
$res = $db->prepare("select * from user");
$res->execute();
while ($row = $res->fetchAll()) {
print_r($row);
}
?>

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

运行结果为:

PDO->query()— 管理一条SQL语句,并回到贰个“PDOStatement”
PDO->exec()— 管理一条SQL语句,并回到所影响的条约数

setAttribute() 方法是安装属性,常用参数如下:

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

PDOStatement Object ( [queryString] => select * from user )

PDO::prepare()第一是预管理操作,供给通过$rs->execute()来试行预管理当中的SQL语句

4858.com,PDO::CASE_LOWE帕杰罗 — 强制列名是小写
PDO::CASE_NATURAL —
列名遵照原有的办法
PDO::CASE_UPPE卡宴 — 强制列名称叫题写

你也许感兴趣的稿子:

  • php mysql PDO
    查询操作的实例详解
  • php使用pdo连接并询问sql数据库的措施
  • Php中用PDO查询Mysql来幸免SQL注入风险的法子
  • PHP中有关PDO数据访问抽象层的成效操作实例
  • php在数据库抽象层简易利用PDO的办法
  • php数据库抽象层 PDO
  • PHP 5 数据对象 (PDO) 抽象层与
    Oracle
  • PHP使用PDO抽象层获得查询结果的主意现身说法

若是要看查询的实际结果,能够透过foreach语句达成循环输出

末了介绍多个常用的函数:

setFetchMode艺术来安装获取结果集的重返值的品类,常用参数如下:

例如:

(1)fetchColumn()获取钦定记录里叁个字段结果,默许是首先个字段!

PDO::FETCH_ASSOC — 关联数组方式
PDO::FETCH_NUM —
数字索引数组方式
PDO::FETCH_BOTH —
两个数组方式都有,那是默许的
PDO::FETCH_OBJ —
根据目的的花样,类似于以前的 mysql_fetch_object()

foreach($res as $val){
echo $val['username']."----".$val['password'].'<br>';
}
<?php
$psql="SELECT * FROM user";
$res = $db->query($psql);
//获取指定记录里第二个字段结果
$col = $res->fetchColumn(1);
echo $col;
?>

对下面总结如下:

运作结果为:

(2)fetchAll()从贰个结果聚集获取数据,然后存放在论及数组中

查询操作主尽管PDO::query()PDO::exec()PDO::prepare()

107lab----e10adc3949ba59abbe56e057f20f883e
admin----123456
<?php
$psql="SELECT * FROM user";
$res = $db->query($psql);
$res_arr =$res->fetchAll();
print_r($res_arr);
?>

PDO->query() —
管理一条SQL语句,并再次来到贰个“PDOStatement”
PDO->exec() —
管理一条SQL语句,并赶回所影响的条约数
PDO::prepare()驷不比舌是预管理操作,须要通过$rs->execute()来试行预管理之中的SQL语句

证实:如若要翻看foreach的事无巨细用法请查看://www.jb51.net/article/68786.htm

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

终极介绍五个常用的函数:

query()与exec()

但愿本文所述对我们PHP程序设计有所补助。

(1)fetchColumn()得到钦定记录里三个字段结果,默许是首先个字段!

query能够兑现全数exec的成效

您大概感兴趣的小说:

  • php mysql PDO
    查询操作的实例详解
  • php使用PDO下exec()函数查询实施后受影响行数的不二等秘书籍
  • php使用pdo连接并询问sql数据库的办法
  • Php中用PDO查询Mysql来幸免SQL注入风险的艺术
  • PHP中关于PDO数据访谈抽象层的功力操作实例
  • php在数据库抽象层简易利用PDO的措施
  • php数据库抽象层 PDO
  • PHP 5 数据对象 (PDO) 抽象层与
    Oracle
<?php
$res = $db->query('select * from user');
//获取指定记录里第二个字段结果
$col = $res->fetchColumn(1);
echo $col;
?>

例如:

(2)fetchAll(),从贰个结果集中获取数据,然后寄放在关周密组中

$dbms='mysql';//数据库类型
$dbName='admin';//使用的数据库
$user='root';//数据库连接用户名
$pwd='905407339';//数据库连接密码
$host='localhost';//数据库主机名
$dsn="$dbms:host=$host;port=3306;dbname=$dbName";
try{
$pdo=new PDO($dsn,$user,$pwd);//初始化一个PDO对象,就是创建了数据库连接对象$pdo
$query="insert into user(username,password) values('admin','123456')";//需要执行的sql语句
$res=$pdo->query($query);//执行添加语句并返回受影响行数
echo "数据添加成功,受影响行数为: ".$res->rowCount();
}catch(Exception $e){
die("Error!:".$e->getMessage().'<br>');
}
<?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常见数据库操作技巧汇总》

数据添加成功,受影响行数为: 1

但愿本文所述对我们PHP程序设计有所帮忙。

注:

您恐怕感兴趣的小说:

  • PHP使用PDO连接ACCESS数据库
  • PHP数据库链接类(PDO+Access)实例共享
  • php中mysql连接格局PDO使用详解
  • 关于php连接mssql:pdo odbc sql
    server
  • Php中用PDO查询Mysql来幸免SQL注入危机的主意
  • php中在PDO中使用职业(Transaction)
  • 全新的PDO数据库操作类php版(仅适用Mysql)
  • php使用pdo连接并询问sql数据库的措施
  • php使用pdo连接mssql
    server数据库实例
  • PHP完成PDO的mysql数据库操作类

1、query和exec都得以举办全数的sql语句,只是重回值分裂而已。
2、query能够兑现全部exec的效劳。
3、当把select语句应用到 exec 时,总是回到 0

预处理语句—-prepare()语句和execute()语句

预管理语句包涵prepare()和execute()两种格局。首先,通过prepare()方法做询问筹划干活,然后通过execute()方法试行查询,何况还足以因此bindParam()方法来绑定参数给execute()方法,语法如下:

PDOStatement PDO::prepare(string statement[,array driver_options])
bool PDOStatement::execute([array input_parameters])

例如:

在PDO中通过预处理语句prepare()和execute()试行SQL查询语句,并且应用while()语句和fetch()方法成功数据的巡回输出

$dbms='mysql';//数据库类型
$dbName='admin';//使用的数据库
$user='root';//数据库连接用户名
$pwd='905407339';//数据库连接密码
$host='localhost';//数据库主机名
$dsn="$dbms:host=$host;port=3306;dbname=$dbName";
try{
  $pdo=new PDO($dsn,$user,$pwd);//初始化一个PDO对象,就是创建了数据库连接对象$pdo
  $query="select * from user";//需要执行的sql语句
  $res=$pdo->prepare($query);//准备查询语句
  $res->execute();
  while($result=$res->fetch(PDO::FETCH_ASSOC)){
    echo $result['id']." ".$result['username']." ".$result['password'].'<br>';
  }
}catch(Exception $e){
  die("Error!:".$e->getMessage().'<br>');
}

运维结果为:

1 107lab e10adc3949ba59abbe56e057f20f883e
4 admin 123456
5 admin 123456

愈来愈多关于PHP相关内容感兴趣的读者可查看本站专项论题:《PHP基于pdo操作数据库手艺计算》、《php+Oracle数据库程序设计才能总结》、《PHP+MongoDB数据库操作才具大全》、《php面向对象程序设计入门教程》、《php字符串(string)用法计算》、《php+mysql数据库操作入门教程》及《php常见数据库操作本领汇总》

瞩望本文所述对我们PHP程序设计有着协理。

你恐怕感兴趣的篇章:

  • php使用pdo连接并询问sql数据库的法子
  • php使用PDO获取结果集的秘籍
  • PHP5中选择PDO连接数据库的不二秘诀
  • php pdo操作数据库示例
  • php使用PDO事务同盟表格读取多量数额插入操作达成方式
  • php中PDO形式完结数据库的增加和删除改查
  • PHP达成PDO的mysql数据库操作类
  • php使用PDO从数据库表中读取数据的完毕格局(必须要看)

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图
Copyright @ 2010-2019 美高梅手机版4858 版权所有