php mysql 替换 pdo,php操作MySQL数据库之PDO方式

这篇文章主要介绍了关于php操作MySQL数据库之PDO方式 ,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下基本使用

1)连接数据库$pdo = new PDO(“mysql:host=localhost; dbname=db_name”,username,password);

2)执行SQL语句$pdo -> query() 针对返回有结果的操作 适用于SELECT

$pdo -> exec() 针对没有返回结果的操作 适用于增删改

3)获取结果集(查询操作专有)$stmt -> fetch($mode) 获取一条数据

$stmt -> fetchAll($mode) 获取所有数据

mode可选择 PDO::FETCH_ASSOC,结果变成关联数组。

实例<?php

// PDO操作数据库例子(查询)

header("content-type:text/html;charset=utf-8");

// 连接数据库

$dsn = "mysql:host=localhost; dbname=test";

$pdo = new PDO($dsn,'root','123456789');

/*********** 执行SQL语句 *************/

// 设置字符集

$pdo -> exec("set names utf8");

$sql = "SELECT * FROM users";

$stmt = $pdo -> query($sql);

// 获取结果集

$data = $stmt -> fetchAll(PDO::FETCH_ASSOC);

var_dump($data);事务控制

1)开启事务$pdo -> beginTransaction()

2)事务回滚$pdo -> rollback()

3)事务提交$pdo -> commit()

4)自动提交$pdo -> setAttribute(PDO::ATTR_AUTOCOMMIT,1)

实例<?php

header("content-type:text/html;charset=utf-8");

// 连接数据库

$dsn = "mysql:host=localhost; dbname=test";

$pdo = new PDO($dsn,'root','123456789');

// 执行SQL语句

// 设置字符集

$pdo -> exec("set names utf8");

// 开启事务

$pdo -> beginTransaction();

// SQL语句

$sql1 = "UPDATE users SET `money`=`money`+1 WHERE `id` = 1 ";

$r1 = $pdo -> exec($sql1);

$sql2 = "UPDATE users SET `money`=`money`-1 WHERE `id` = 12 ";

$r2 = $pdo -> exec($sql2);

// 做判断

if($r1 > 0 && $r2 > 0){

$pdo -> commit();

echo '操作成功';

}else{

$pdo -> rollback();

echo '操作失败';

}

$pdo -> setAttribute(PDO::ATTR_AUTOCOMMIT,1);预处理

1)$sql = “???”

SQL语句的VALUE里面的参数,使用问号代替。

2)创建预编译对象$pdo -> prepare($sql)

3)参数赋值$stmt -> bindParam(参数位置 | 参数伪名, 变量名(需要有值))

$stmt -> bindValue(参数参数位置 | 参数伪名, 变量名(需要有值)| 具体的值)

$stmt -> bindParam详解:$sql = "UPDATE users SET `money`=100 WHERE id = :num ";

// 注意,这里必须先给$num赋值

$num = 3;

$stmt -> bindParam(":num",$num);

另一种形式(占位符变成问号)

$sql = "UPDATE users SET `money`=100 WHERE id = ? ";

// 注意,这里必须先给$num赋值

$num = 3;

$stmt -> bindParam(":num",$num);

$stmt -> bindValue详解

在使用bindValue绑定变量后,即使在执行execute之前改变了该变量的值,那么结果也不会变。

详细请看这里这里写链接内容

4)执行代码$stmt -> execute()

5)获取结果(查询操作专有)$stmt -> fetch($mode) 获取一个结果

$stmt -> fetchAll($mode) 获取所有结果

mode可选择 PDO::FETCH_ASSOC,结果变成关联数组。

实例<?php

// MySQLi预处理控制例子(查询)

header("content-type:text/html;charset=utf-8");

// 连接数据库

$dsn = "mysql:host=localhost; dbname=test";

$pdo = new PDO($dsn,'root','123456789');

// 设置字符集

$pdo -> exec("set names utf8");

// SQL语句

$sql = "SELECT * FROM users WHERE id > :num ";

// 创建预编译对象

$stmt = $pdo -> prepare($sql);

// 参数绑定

$num = 3;

$stmt -> bindParam(":num",$num);

// 执行SQL语句

$stmt -> execute();

// 获取结果集

$data = $stmt -> fetchAll(PDO::FETCH_ASSOC);

var_dump($data);

相关推荐:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/434028.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

.NET操作Excel

一.读取Excel数据&#xff0c;并显示 1.配置文件 <configuration> <system.web> <compilation debug"true" targetFramework"4.0" /> </system.web> <appSettings> <!--连接03版本的--> &l…

AC_CHECK_LIB的工作原理

AC_CHECK_LIB就是告诉configure我们需要检查哪些lib&#xff0c;并根据检查结果做什么处理。正是在这里遇到了问题并有所收获&#xff0c;才促使我写这篇blog记录一下。问题是这样&#xff0c;我想检查一下libXv.so这个库是否存在&#xff0c;不存在的话就让configure直接退出。…

mac json格式化工具_一个在 MAC 上 iOS/Flutter 开发的辅助工具

大家好&#xff0c;我是章鱼猫。今天给大家推荐的这个开源项目&#xff0c;是来自于我们公众号读者的投稿&#xff0c;这个东西还挺好的。如果你作为读者&#xff0c;也有自己的开源项目或者你也有想推荐的开源项目&#xff0c;都可以向我们投稿&#xff0c;我们就是致力于帮助…

php 开启fsockopen函数,巧用php的fsockopen函数

这几天闲着没事&#xff0c;用PHP的fsockopen写了几个文件为我的酷我音乐盒的帐户加分。获得途径 积分音乐盒完整的听一首歌曲 1(每天最高200)音乐坊成功上传一张歌单 50(每天最高200)酷我音乐空间空间被访问1次 1(每天最高50)有人打招呼1次 2(每天最高50)有人留言(非主人) 5(每…

java中多维数组的clone容易引起误解

int[][] arr1 new int[][]{{1,2},{1,2}}; int[][] arr2 arr1.clone(); 因为arr1!arr2所以我的意图是 修改arr2 在确定修改结束后 将arr2赋给arr1依此保证在arr2修改过程中arr1不变&#xff0c;&#xff0c;&#xff0c;但神奇的是竟然变了后来才注意到虽然arr1!arr2但arr1[0]…

python编写界面遍历_python和pywin32实现窗口查找、遍历和点击的示例代码

Pywin32是一个Python库&#xff0c;为python提供访问Windows API的扩展&#xff0c;提供了齐全的windows常量、接口、线程以及COM机制等等。1.通过类名和标题查找窗口句柄&#xff0c;并获得窗口位置和大小import win32guiimport win32apiclassname "MozillaWindowClass&…

termcap-1.3.1的configure.in文件逐行分析

AC_INIT(termcap.h) 每个configure文件第一个需要调用的宏&#xff0c;他处理所有的命令行参数并且寻找源代码目录。termcap.h是包含在源代码目录下的文件&#xff0c;configure在目录中检查这些文件是否存在以确定该目录是否包含源代码。 AC_ARG_ENABLE(install-termcap, [ …

php转换图片属性a,PHP 提取图片img标记中的任意属性

/* PHP正则提取图片img标记中的任意属性 */$str PHP正则提取或更改图片img标记中的任意属性;//1、取整个图片代码preg_match(/]*?src\s*\s*(\|\")(.*?)\\1[^>]*?\/?\s*>/i,$str,$match);echo $match[0];//2、取width属性preg_match(//i,$str,$match);echo $mat…

OOP三言两语

OOP面向对象编程&#xff0c;主要特点&#xff1a;封装、继承、多态&#xff0c;一切即对象。 多态&#xff1a;编译时多态-- 方法重载 &#xff08;方法名称相同&#xff0c;签名不同&#xff09;。 运行时多态--子类override 父类的&#xff08;vitural、abstract&#xff09…

交叉编译termcap1.3.1

修改Makefile文件其中两行即可 CC gcc 改为 CC arm-linux-gcc AR ar 改为 AR arm-linux-ar 编译后生成libtermcap.a文件&#xff0c;将其拷贝到交叉工具链的lib文件夹下即可使用。

python实现数字时钟_Python 写的全屏数字时钟软件,看看还有什么改进的地方

zgzb&#xff1a;软件启动图&#xff1a; https://s1.ax1x.com/2020/09/25/096RzV.png链接&#xff1a; https://www.lanzoux.com/i2vCzgwo0xawjj5728&#xff1a;啥都不说&#xff0c;先瞎为敬。黑色字看不到呀rglee&#xff1a;这配色绝了galileo1214&#xff1a;这全屏有啥用…

php ajax无刷新分页源码,ajax实现无刷新分页(php)

投票结果function GetXmlHttpObject(){var xmlHttpnull;try{// Firefox, Opera 8.0, SafarixmlHttpnew XMLHttpRequest();}catch (e){// Internet Explorertry{xmlHttpnew ActiveXObject("Msxml2.XMLHTTP");}catch (e){xmlHttpnew ActiveXObject("Microsoft.XML…

SQL嵌套语句执行顺序

首先我们要了解一下SQL语句的执行过程。 SELECT 字段 FROM 表名 WHERE 条件表达式 那它们是按什么顺序执行呢&#xff1f;分析器会先看语句的第一个词&#xff0c;当它发现第一个词是SELECT关键字的时候&#xff0c;它会跳到FROM关键字&#xff0c;然后通过FROM关键字找到表名并…

fatal error: Python.h: No such file or directory

ubuntu下编译libxml2时&#xff0c;报错. 执行apt-get install python-dev即可

php 计划任务 不执行,CentOS 系统下 Laravel 计划任务 PHP artisan schedule:run 不执行,应该如何处理?...

服务器是centos系统&#xff0c;现在遇到一个很奇怪的问题&#xff0c;计划任务不能执行&#xff0c;本来设的是定时检查用户表&#xff0c;给当天过生日的用户发生日祝福短信&#xff0c;日志记录计划任务执行了&#xff0c;但没有短信发送&#xff0c;laravel日志中也没有记录…

(转)Win7下如何硬盘安装Ubuntu

1.下载Linux镜像及EasyBCD   以Ubuntu为例&#xff1a;http://www.ubuntu.com/desktop/get-ubuntu/download  系统引导软件EasyBCD&#xff1a;http://neosmart.net/EasyBCD/  2.设置NeoGrub启动项   1&#xff09;ubuntu下载文件放在C:\ubuntu-10.10-desktop-i386.iso&…

编译libxml2-2.6.26 __open_missing_mode 错误

调用open函数&#xff0c;因为使用open函数的时候&#xff0c;如果在第二个参数中使用了 O_CREAT&#xff0c;就必须添加第三个参数&#xff1a;创建文件时赋予的初始权。 解决方案&#xff1a;在调用open函数的那一行的参数里加个“0666”或者“0777”均可&#xff01; 如&…

卡巴斯基授权许可文件_制片方未提供电视台授权证明,构成根本违约吗?

在制作娱乐法101课程的过程中&#xff0c;需要检索很多案例&#xff0c;有时候也也看到一些似乎不太合理的判决书。在一起电视播映权纠纷中&#xff0c;合同中一般会常规约定制作方需要向电视台提交确保其在合同授权区域、授权范围、授权期限内具有合法播映权的证明文件的合同义…

月头月尾oracle取数,Oracle分析函数Over()的使用

今天为完成客户成品仓盘点的统计功能&#xff0c;做了盘点统计表&#xff0c;这个功能有点复杂&#xff0c;要将生产数据与库存的差异做成一个统计报表&#xff0c;报表要反映出差异的明细。其实&#xff0c;这个项目拖了也挺久了&#xff0c;本来客户计划用于2018年终盘点&…

一个快递小伙子带给我们的启示:认真有力量

今天加班一天&#xff0c;合肥漫天飞雪&#xff0c;出门就开始下&#xff0c;到了公司&#xff0c;这个世界全白了&#xff0c;看到了这篇文章&#xff0c;贴出来于大家共享&#xff01;认真有力量&#xff0c;大家认真努力工作哈&#xff01; 他是个快递小子&#xff0c;20岁出…