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小偷相关截取函数备忘
Nov 28 PHP
PHP curl_setopt()函数实例代码与参数分析
Jun 02 PHP
PHP支持多种格式图片上传(支持jpg、png、gif)
Nov 03 PHP
PHP 基于文件头的文件类型验证类函数
May 01 PHP
PHP 利用AJAX获取网页并输出的实现代码(Zjmainstay)
Aug 31 PHP
PHP中$_SERVER的详细参数与说明介绍
Oct 26 PHP
PHP批量删除、清除UTF-8文件BOM头的代码实例
Apr 14 PHP
PHP准确取得服务器IP地址的方法
Jun 02 PHP
详解php设置session(过期、失效、有效期)
Nov 12 PHP
屏蔽PHP默认设置中的Notice警告的方法
May 20 PHP
基于jQueryUI和Corethink实现百度的搜索提示功能
Nov 09 PHP
laravel ajax curd 搜索登录判断功能的实现
Apr 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中使用Oracle数据库(6)
2006/10/09 PHP
PHP操作数组相关函数
2011/02/03 PHP
PHP header函数分析详解
2011/08/06 PHP
Linux Apache PHP Oracle 安装配置(具体操作步骤)
2013/06/17 PHP
PHP进程通信基础之信号量与共享内存通信
2017/02/19 PHP
基于ThinkPHP5.0实现图片上传插件
2017/09/25 PHP
PHP基于DateTime类解决Unix时间戳与日期互转问题【针对1970年前及2038年后时间戳】
2018/06/13 PHP
js文字滚动停顿效果代码
2008/06/28 Javascript
jQuery 学习第七课 扩展jQuery的功能 插件开发
2010/05/17 Javascript
js继承的实现代码
2010/08/05 Javascript
Javascript中的getUTCHours()方法使用详解
2015/06/10 Javascript
jQuery实现模拟marquee标签效果
2015/07/14 Javascript
JS实现常见的TAB、弹出层效果(TAB标签,斑马线,遮罩层等)
2015/10/08 Javascript
jQuery Easyui实现左右布局
2016/01/26 Javascript
JS实现动态表格的添加,修改,删除功能(推荐)
2016/06/15 Javascript
AngularJS的依赖注入实例分析(使用module和injector)
2017/01/19 Javascript
Django1.7+JQuery+Ajax验证用户注册集成小例子
2017/04/08 jQuery
完美解决iview 的select下拉框选项错位的问题
2018/03/02 Javascript
JS实现放大镜效果
2020/09/21 Javascript
[15:23]教你分分钟做大人:虚空假面
2014/10/30 DOTA
[55:04]海涛DOTA2死魂复燃6.82版本介绍
2014/09/28 DOTA
Tensorflow 合并通道及加载子模型的方法
2018/07/26 Python
python3利用venv配置虚拟环境及过程中的小问题小结
2018/08/01 Python
使用python分析统计自己微信朋友的信息
2019/07/19 Python
Python检测端口IP字符串是否合法
2020/06/05 Python
python实现取余操作的简单实例
2020/08/16 Python
利用css3 translate完美实现表头固定效果
2017/02/28 HTML / CSS
详解HTML5表单新增属性
2016/12/21 HTML / CSS
中国跨境电子商务网站:NewFrog
2018/03/10 全球购物
laravel使用redis队列实例讲解
2021/03/23 PHP
授权委托书(法人单位用)
2014/09/29 职场文书
2014年导购员工作总结
2014/11/18 职场文书
银行工作心得体会范文
2016/01/23 职场文书
React 高阶组件HOC用法归纳
2021/06/13 Javascript
SpringDataJPA在Entity中常用的注解介绍
2021/12/06 Java/Android
python内置模块之上下文管理contextlib
2022/06/14 Python