php使用PDO执行SQL语句的方法分析


Posted in PHP onFebruary 16, 2017

本文实例讲述了php使用PDO执行SQL语句的方法。分享给大家供大家参考,具体如下:

exec()方法

exec()方法返回执行后受影响行数,语法如下:

int PDO::exec(string statement)

参数statement是要执行的SQL语句。该方法返回执行查询时受影响的行数,通常情况下用于INSERT,DELETE和UPDATE语句中。

例如:

$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>');
}

运行结果为:

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

query()方法

query()方法用于返回执行查询后的结果集,语法如下

PDOStatement PDO::query(string statement)

参数statement 是要执行的SQL语句。它返回的是一个PDOStatement对象

例如:

$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>');
}

运行结果为:

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

如果要看查询的具体结果,可以通过foreach语句完成循环输出

例如:

foreach($res as $val){
echo $val['username']."----".$val['password'].'<br>';
}

运行结果为:

107lab----e10adc3949ba59abbe56e057f20f883e
admin----123456

说明:如果要查看foreach的详细用法请查看:https://3water.com/article/68786.htm

query()与exec()

query可以实现所有exec的功能

例如:

$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>');
}

运行结果为:

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

注:

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 相关文章推荐
PHP 5.0对象模型深度探索之对象复制
Mar 27 PHP
php 删除记录实现代码
Mar 12 PHP
php的urlencode()URL编码函数浅析
Aug 09 PHP
php empty()与isset()区别的详细介绍
Jun 17 PHP
php中url函数介绍及使用示例
Feb 13 PHP
jQuery中的RadioButton,input,CheckBox取值赋值实现代码
Feb 18 PHP
PHP实现将textarea的值根据回车换行拆分至数组
Jun 10 PHP
php实现模拟post请求用法实例
Jul 11 PHP
深入理解PHP内核(二)之SAPI探究
Nov 10 PHP
深入浅析php中sprintf与printf函数的用法及区别
Jan 08 PHP
PHP Post获取不到非表单数据的问题解决办法
Feb 27 PHP
小程序微信退款功能实现方法详解【基于thinkPHP】
May 05 PHP
php四种定界符详解
Feb 16 #PHP
php使用PDO获取结果集的方法
Feb 16 #PHP
redirect_uri参数错误的解决方法(必看)
Feb 16 #PHP
php实现PDO中捕获SQL语句错误的方法
Feb 16 #PHP
php中的单引号、双引号和转义字符详解
Feb 16 #PHP
php输出图像的方法实例分析
Feb 16 #PHP
替换php字符串中的单引号为双引号的方法
Feb 16 #PHP
You might like
Win2003服务器安全加固设置--进一步提高服务器安全性
2007/05/23 PHP
PHP stream_context_create()作用和用法分析
2011/03/29 PHP
php数组函数序列之array_push() 数组尾部添加一个或多个元素(入栈),返回新长度。
2011/11/07 PHP
解析php mysql 事务处理回滚操作(附实例)
2013/08/05 PHP
php截取中文字符串不乱码的方法
2013/12/25 PHP
smarty模板引擎中自定义函数的方法
2015/01/22 PHP
解决PHP程序运行时:Fatal error: Maximum execution time of 30 seconds exceeded in的错误提示
2016/11/25 PHP
五段实用的js高级技巧
2011/12/20 Javascript
放弃用你的InnerHTML来输出HTML吧 jQuery Tmpl不详细讲解
2013/04/20 Javascript
防止jQuery ajax Load使用缓存的方法小结
2014/02/22 Javascript
jQuery层动画定位滑动效果的方法
2015/04/30 Javascript
JS实现点击上移下移LI行数据的方法
2015/08/05 Javascript
js 模仿锚点定位的实现方法
2016/11/19 Javascript
Bootstrap模态框插入视频的实现代码
2017/06/25 Javascript
js+html5生成自动排列对话框实例
2017/10/09 Javascript
vue.js整合vux中的上拉加载下拉刷新实例教程
2018/01/09 Javascript
基于Fixed定位的框选功能的实现代码
2019/05/13 Javascript
微信小程序的mpvue框架快速上手指南
2019/05/15 Javascript
Nodejs环境实现socket通信过程解析
2020/07/03 NodeJs
[00:32]2016完美“圣”典风云人物:Maybe宣传片
2016/12/05 DOTA
python数据类型判断type与isinstance的区别实例解析
2017/10/31 Python
python处理csv中的空值方法
2018/06/22 Python
Python面向对象之反射/自省机制实例分析
2018/08/24 Python
Pandas读写CSV文件的方法示例
2019/03/27 Python
python3使用GUI统计代码量
2019/09/18 Python
荟萃全球保健品:维他购
2018/05/09 全球购物
Sarenza德国:法国最大的时尚鞋和包包网上商店
2019/06/08 全球购物
信息管理应届生求职信
2014/03/07 职场文书
关于美容院的活动方案
2014/08/14 职场文书
城市轨道交通工程职业生涯规划书范文
2014/09/16 职场文书
领导干部个人对照检查材料(群众路线)
2014/09/26 职场文书
重阳节标语大全
2014/10/07 职场文书
2014年学校教学工作总结
2014/12/06 职场文书
评先进个人材料
2014/12/29 职场文书
大学生党员暑假实践(活动总结)
2019/08/21 职场文书
python保存图片的四个常用方法
2022/02/28 Python