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 相关文章推荐
基于mysql的bbs设计(五)
Oct 09 PHP
PHP中数组定义的几种方法
Sep 01 PHP
PHP采用自定义函数实现遍历目录下所有文件的方法
Aug 19 PHP
支持中文、字母、数字的PHP验证码
May 04 PHP
如何通过Linux命令行使用和运行PHP脚本
Jul 29 PHP
Linux系统下PHP-FPM的安装和配置教程
Aug 17 PHP
php用户密码加密算法分析【Discuz加密算法】
Oct 12 PHP
php 文件下载 出现下载文件内容乱码损坏的解决方法(推荐)
Nov 16 PHP
浅析PHP开发规范
Feb 05 PHP
PHP中的Iterator迭代对象属性详解
Apr 12 PHP
laravel 解决路由除了根目录其他都404的问题
Oct 18 PHP
Yii框架小部件(Widgets)用法实例详解
May 15 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
解析php5配置使用pdo
2013/07/03 PHP
对淘宝URL中ID提取的PHP代码
2013/09/01 PHP
php正则表达式获取内容所有链接
2015/07/24 PHP
基于PHP后台的Android新闻浏览客户端
2016/05/23 PHP
Laravel中基于Artisan View扩展包创建及删除应用视图文件的方法
2016/10/08 PHP
laravel返回统一格式错误码问题
2019/11/04 PHP
基于Jquery的简单&amp;简陋Tabs插件代码
2010/02/09 Javascript
javascript函数中的arguments参数
2010/08/01 Javascript
使用jQuery的将桌面应用程序引入浏览器
2010/11/19 Javascript
jQuery对下拉框,单选框,多选框的操作
2014/02/21 Javascript
Javascript 实现图片无缝滚动
2014/12/19 Javascript
JavaScript中的异常捕捉介绍
2014/12/31 Javascript
javascript实现状态栏中文字动态显示的方法
2015/10/20 Javascript
JavaScript sort数组排序方法和自我实现排序方法小结
2016/06/06 Javascript
Javascript操作表单实例讲解(下)
2016/06/20 Javascript
如何在Angular2中使用jQuery及其插件的方法
2017/02/09 Javascript
jQuery tip提示插件(实例分享)
2017/04/28 jQuery
JS实现可切换图片的幻灯切换效果示例
2019/05/24 Javascript
实现高性能javascript的注意事项
2019/05/27 Javascript
Layui之table中的radio在切换分页时无法记住选中状态的解决方法
2019/09/02 Javascript
微信小程序实现电子签名功能
2020/07/29 Javascript
原生小程序封装跑马灯效果
2020/10/21 Javascript
Python使用minidom读写xml的方法
2015/06/03 Python
Python获取本机所有网卡ip,掩码和广播地址实例代码
2018/01/22 Python
Python列表推导式、字典推导式与集合推导式用法实例分析
2018/02/07 Python
Python基于SMTP协议实现发送邮件功能详解
2018/08/14 Python
Python Flask框架模板操作实例分析
2019/05/03 Python
Python Scrapy图片爬取原理及代码实例
2020/06/12 Python
Selenium及python实现滚动操作多种方法
2020/07/21 Python
html5简介_动力节点Java学院整理
2017/07/07 HTML / CSS
html5 canvas简单封装一个echarts实现不了的饼图
2018/06/12 HTML / CSS
Lookfantastic瑞典:英国知名美妆购物网站
2018/04/06 全球购物
ZINVO手表官网:男士和女士手表
2019/03/10 全球购物
业务主管岗位职责
2013/11/20 职场文书
人事助理自荐信
2014/02/02 职场文书
幼儿园辞职书
2015/02/26 职场文书