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将任何格式视频转为flv的代码
Sep 03 PHP
PHP中将网页导出为Word文档的代码
May 25 PHP
Yii PHP Framework实用入门教程(详细介绍)
Jun 18 PHP
php中eval函数的危害与正确禁用方法
Jun 30 PHP
PHP打开和关闭文件操作函数总结
Nov 18 PHP
PHP实现将科学计数法转换为原始数字字符串的方法
Dec 16 PHP
PHP register_shutdown_function()函数的使用示例
Jun 23 PHP
PHP中对数组的一些常用的增、删、插操作函数总结
Nov 27 PHP
利用PHP判断是否是连乘数字串的方法示例
Jul 03 PHP
Yii1.1框架实现PHP极光推送消息通知功能
Sep 06 PHP
ThinkPHP3.2.3框架邮件发送功能图文实例详解
Apr 23 PHP
php 的多进程操作实践案例分析
Feb 28 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读取目录及子目录下所有文件名的方法
2014/10/20 PHP
php中return的用法实例分析
2015/02/28 PHP
PHP命名空间和自动加载类
2016/04/03 PHP
php用户密码加密算法分析【Discuz加密算法】
2016/10/12 PHP
PHP实现ASCII码与字符串相互转换的方法
2017/04/29 PHP
CSS中一些@规则的用法小结
2021/03/09 HTML / CSS
妙用Jquery的val()方法
2012/06/27 Javascript
node.js实现多图片上传实例
2014/06/03 Javascript
优化RequireJS项目的相关技巧总结
2015/07/01 Javascript
javascript文件加载管理简单实现方法
2015/07/25 Javascript
JavaScript入门基础
2015/08/12 Javascript
JavaScript快速切换繁体中文和简体中文的方法及网站支持简繁体切换的绝招
2016/03/07 Javascript
Mvc提交表单的四种方法全程详解
2016/08/10 Javascript
JS声明式函数与赋值式函数实例分析
2016/12/13 Javascript
ES6中Math对象的部分扩展
2017/02/20 Javascript
canvas简单快速的实现知乎登录页背景效果
2017/05/08 Javascript
微信小程序之数据双向绑定与数据操作
2017/05/12 Javascript
bootstrap响应式工具使用详解
2017/11/29 Javascript
JavaScript偏函数与柯里化实例详解
2019/03/27 Javascript
基于Vue和Element-Ui搭建项目的方法
2019/09/06 Javascript
Vue 用Vant实现时间选择器的示例代码
2019/10/25 Javascript
构建大型 Vue.js 项目的10条建议(小结)
2019/11/14 Javascript
javascript设计模式 ? 模板方法模式原理与用法实例分析
2020/04/23 Javascript
[37:47]IG vs Winstrike 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
python局域网ip扫描示例分享
2014/04/03 Python
Python通过poll实现异步IO的方法
2015/06/04 Python
BP神经网络原理及Python实现代码
2018/12/18 Python
python用for循环求和的方法总结
2019/07/08 Python
python动态规划算法实例详解
2020/11/22 Python
HTML5 Geolocation API的正确使用方法
2018/12/04 HTML / CSS
html5简单示例_动力节点Java学院整理
2017/07/07 HTML / CSS
地球一小时倡议书
2014/04/15 职场文书
企业领导班子四风对照检查材料
2014/09/27 职场文书
求职导师推荐信范文
2015/03/27 职场文书
结婚仪式主持词
2015/06/29 职场文书
2016年社区中秋节活动总结
2016/04/05 职场文书