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 csv操作类代码
Dec 14 PHP
php Smarty模板生成html文档的方法
Apr 12 PHP
PHP 全角转半角实现代码
May 16 PHP
php中防止伪造跨站请求的小招式
Sep 02 PHP
PHP eval函数使用介绍
Dec 08 PHP
基于php和mysql的简单的dao类实现crud操作功能
Jan 27 PHP
Yii入门教程之目录结构、入口文件及路由设置
Nov 25 PHP
PHP实现文件下载详解
Nov 27 PHP
php微信开发之批量生成带参数的二维码
Jun 26 PHP
PHP生成word文档的三种实现方式
Nov 14 PHP
Yii 2中的load()和save()示例详解
Aug 03 PHP
php5.6.x到php7.0.x特性小结
Aug 17 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
PHP小程序自动提交到自助友情连接
2009/11/24 PHP
PHP fastcgi模式上传大文件(大约有300多K)报错
2014/09/28 PHP
jQuery UI Autocomplete 1.8.16 中文输入修正代码
2012/04/16 Javascript
JavaScript实现大数的运算
2014/11/24 Javascript
iScroll中事件点击触发两次解决方案
2015/03/11 Javascript
js使用DOM操作实现简单留言板的方法
2015/04/10 Javascript
微信小程序 PHP生成带参数二维码
2017/02/21 Javascript
node.js学习之断言assert的使用示例
2017/09/28 Javascript
简单实现jquery隔行变色
2017/11/09 jQuery
React中常见的动画实现的几种方式
2018/01/10 Javascript
微信小程序实现底部导航
2018/11/05 Javascript
javascript实现考勤日历功能
2018/11/29 Javascript
Vue使用虚拟dom进行渲染view的方法
2019/12/26 Javascript
[44:50]2018DOTA2亚洲邀请赛 4.1 小组赛 A组 TNC vs VG
2018/04/02 DOTA
[48:46]完美世界DOTA2联赛PWL S2 SZ vs FTD.C 第二场 11.19
2020/11/19 DOTA
python的unittest测试类代码实例
2017/12/07 Python
python如何去除字符串中不想要的字符
2020/07/05 Python
Centos 升级到python3后pip 无法使用的解决方法
2018/06/12 Python
简单瞅瞅Python vars()内置函数的实现
2019/09/27 Python
Python3和pyqt5实现控件数据动态显示方式
2019/12/13 Python
python 解决cv2绘制中文乱码问题
2019/12/23 Python
python实现横向拼接图片
2020/03/23 Python
Tensorflow安装问题: Could not find a version that satisfies the requirement tensorflow
2020/04/20 Python
使用HTML5加载音频和视频的实现代码
2020/11/30 HTML / CSS
HEMA英国:荷兰原创设计
2018/08/28 全球购物
COSETTE官网:奢华,每天
2020/03/22 全球购物
W Hamond官网:始于1979年的钻石专家
2020/07/20 全球购物
银行会计财务工作个人的自我评价
2013/10/29 职场文书
企业文明单位申报材料
2014/05/16 职场文书
2014年酒店前台工作总结
2014/11/14 职场文书
2014年劳动部工作总结
2014/12/11 职场文书
世界地球日活动总结
2015/02/09 职场文书
运动会广播稿50字
2015/08/19 职场文书
JS中如何优雅的使用async await详解
2021/10/05 Javascript
redis复制有可能碰到的问题汇总
2022/04/03 Redis
Win11 vmware不兼容怎么办?Win11与VMware虚拟机不兼容的解决方法
2023/01/09 数码科技