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 相关文章推荐
操作Oracle的php类
Oct 09 PHP
php session 检测和注销
Mar 16 PHP
用PHP实现读取和编写XML DOM代码
Apr 07 PHP
ThinkPHP采用模块和操作分析
Apr 18 PHP
php使用filter过滤器验证邮箱 ipv6地址 url验证
Dec 25 PHP
PHP常用数组函数介绍
Jul 28 PHP
php实现的常见排序算法汇总
Sep 08 PHP
WordPress中自定义后台管理界面配色方案的小技巧
Dec 29 PHP
ThinkPHP的常用配置选项汇总
Mar 24 PHP
PHP中ajax无刷新上传图片与图片下载功能
Feb 21 PHP
PHP7内核CGI与FastCGI详解
Apr 14 PHP
Laravel关系模型指定条件查询方法
Oct 10 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』PHP截断函数mb_substr()使用介绍
2013/04/22 PHP
PHP答题类应用接口实例
2015/02/09 PHP
php自定义函数实现二维数组排序功能
2016/07/20 PHP
php实现多维数组排序的方法示例
2017/03/23 PHP
javascript 图片上一张下一张链接效果代码
2010/03/12 Javascript
jquery $(this).attr $(this).val方法使用介绍
2013/10/08 Javascript
使用CoffeeScrip优美方式编写javascript代码
2015/10/28 Javascript
vuejs开发组件分享之H5图片上传、压缩及拍照旋转的问题处理
2017/03/06 Javascript
js事件on动态绑定数据,绑定多个事件的方法
2018/09/15 Javascript
JS/HTML5游戏常用算法之追踪算法实例详解
2018/12/12 Javascript
Angular.JS读取数据库数据调用完整实例
2019/07/02 Javascript
微信小程序实现点击空白隐藏的方法示例
2019/08/13 Javascript
微信小程序加载机制及运行机制图解
2019/11/27 Javascript
[02:34]DOTA2亚洲邀请赛 BG战队出场宣传片
2015/03/09 DOTA
[01:20]DOTA2 齐天大圣至宝动态展示
2016/12/13 DOTA
python 提取文件的小程序
2009/07/29 Python
浅析Python中的多进程与多线程的使用
2015/04/07 Python
Python中super()函数简介及用法分享
2016/07/11 Python
详解Python中最难理解的点-装饰器
2017/04/03 Python
python的mysqldb安装步骤详解
2017/08/14 Python
python生成二维码的实例详解
2017/10/29 Python
django 中使用DateTime常用的时间查询方式
2019/12/03 Python
jupyter notebook tensorflow打印device信息实例
2020/04/20 Python
利用HTML5 Canvas制作一个简单的打飞机游戏
2015/05/11 HTML / CSS
欧洲最大的婴幼儿服装及内衣公司:Petit Bateau(小帆船)
2016/08/16 全球购物
介绍一下sql server的安全性
2014/08/10 面试题
会计员岗位职责
2014/03/15 职场文书
刊首寄语大全
2014/04/11 职场文书
同志主要表现材料
2014/08/21 职场文书
忠诚教育心得体会
2014/09/03 职场文书
永远跟党走演讲稿
2014/09/12 职场文书
老人再婚离婚协议书范本
2014/10/27 职场文书
2016春季幼儿园开学寄语
2015/12/03 职场文书
详解Python中*args和**kwargs的使用
2022/04/07 Python
笔记本自带的win11如何跳过联网激活?
2022/04/20 数码科技
AndroidStudio图片压缩工具ImgCompressPlugin使用实例
2022/08/05 Java/Android