php pdo连接数据库操作示例


Posted in PHP onNovember 18, 2019

本文实例讲述了php pdo连接数据库操作。分享给大家供大家参考,具体如下:

pdo连接数据库的有点是能实现不同数据库之间的转换,而且有事务功能的回滚,更有pdo::prepare();pdo:::execute()函数的预处理查询,所以我个人认为pdo的功能还是比较强大的,所有这篇日志只为我自己而写,希望看到这篇日志的兄弟们能对你们有所帮助。

要用php连接数据库首先要要实例化pdo的类,并且要有数据源,服务器账号,服务器密码

数据源是数据库类型,服务器名称,数据库名称的一个集合。

<?php
//以下是实例化一个pdo的带码
$dsn="mysql:host=localhost;dbname=tanyong";//这就是数据源,
$user="root";//这个是服务器的账号,我的电脑上是这样,就不知道你们的是不是,
$pwd="";//这是我电脑上的服务器密码,就是我没设
$pdo=new PDO($dsn,$user,$pwd);//实例化一个PDO连接
$pdo->query("set names gbk");//设置从数据库里面传递过来的数据的编码格式
?>

事务介绍:事务介绍我就通过我自己的理解来讲解一遍吧,就是先要关闭数据库的自动提交功能(什么是自动提交功能?就是当我们写完一个sql语句后,按回车键执行不起,而要经过特殊的代码处理才能提交上去,后面我会介绍的)

然后写出你要执行的sql语句并将返回的结果赋给两个不同的变量,之后提交,如果在执行的时候其中1个或多个发生了错误,就进行事务回滚,即使回归初始状态(也就是前面在事务处理代码中的插入或改变或删除或查询的语句全部作废),还有一个优点是不会因为进入其他网页,或执行其他sql语句而影响到事务处理的进程

//以下是事务回滚的代码简介
<?php
$dsn="mysql:host=localhost;dbname=tanyong";//这就是数据源,
$user="root";//这个是服务器的账号,我的电脑上是这样,就不知道你们的是不是,
$pwd="";//这是我电脑上的服务器密码,就是我没设
$pdo=new PDO($dsn,$user,$pwd);//实例化一个PDO连接
$pdo->query("set names gbk");//设置从数据库里面传递过来的数据的编码格式
$pdo->begintransaction();//在这里关闭mysql的自动提交功能
$a=$pdo->query("insert into tongxue values('130042106','谭勇','男');
$b=$pdo->query("insert into tongxue values('130042100','猪八戒','男')");
if($a==true && $b==true){
$pdo->commit();//提交事务
} else{
$pdo->rollback();//事务回滚
}
?>

mysql_num_rows()函数能数出数据库返回结果集的行数,以此来判断该用户输入的用户名和密码是否正确,那么在pdo中我们如何实现这个功能呢?

在pdo中有一个函数pdo::fetchall(),他的作用是将从数据库返回的一个结果集全部赋给获取它的值,之后再用count()函数数出行数具体事例代码如下

<?php
$dsn="mysql:host=localhost;dbname=tanyong";//这就是数据源,
$user="root";//这个是服务器的账号,我的电脑上是这样,就不知道你们的是不是,
$pwd="";//这是我电脑上的服务器密码,就是我没设
$pdo=new PDO($dsn,$user,$pwd);//实例化一个PDO连接
$pdo->query("set names gbk");//设置从数据库里面传递过来的数据的编码格式
$sql="select * from tongxue where id='130042106'";
$shuju=pdo->prepare($sql);//这就是我们所说的预处理 
$shuju->execute();//执行预处理的结果;
$jg=$shuju->fetchall(PDO::FETCH_ASSOC);//将返回的结果集以数组的方式全部返回给变量$jg
$hangshu=count($jg);//数出结果集的行数
if($hangshu>0){
echo '查询出来是有这个人的';
} else{
echo '查询出来是没有这个人的';
}
?>

当我们的页面运行的sql语句较多时,可以用pdo当中的预处理,来减缓服务器的压力,这对于那些要做大型网站的项目来说是一个不错的选择,因为大型网站一天的浏览量是几万或十几万的.
下面我们来看看pdo的预处理

<?php
$dsn="mysql:host=localhost;dbname=tanyong";//这就是数据源,
$user="root";//这个是服务器的账号,我的电脑上是这样,就不知道你们的是不是,
$pwd="";//这是我电脑上的服务器密码,就是我没设
$pdo=new PDO($dsn,$user,$pwd);//实例化一个PDO连接
$pdo->query("set names gbk");//设置从数据库里面传递过来的数据的编码格式
$sql="insert into tongxue values('130042100','老师','男')";//我们要执行的sql语句
$shuju=$pdo->prepare($sql); //预处理
$shuju->execute();//执行预处理的sql语句
if($shuju){
echo '执行成功';
} else{
echo '执行失败';
}
?>

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
PHP+APACHE实现用户论证的方法
Oct 09 PHP
PHP 实用代码收集
Jan 22 PHP
php中json_encode处理gbk与gb2312中文乱码问题的解决方法
Jul 10 PHP
避免Smarty与CSS语法冲突的方法
Mar 02 PHP
php获取指定范围内最接近数的方法
Jun 02 PHP
php验证码实现代码(3种)
Sep 07 PHP
php命令行(cli)模式下报require 加载路径错误的解决方法
Nov 23 PHP
php计划任务之验证是否有多个进程调用同一个job的方法
Dec 07 PHP
php ucwords() 函数将字符串中每个单词的首字符转换为大写(实现代码)
May 12 PHP
PHP入门教程之操作符与控制结构流程详解
Sep 09 PHP
PHP isset()与empty()的使用区别详解
Feb 10 PHP
PHP实现Markdown文章上传到七牛图床的实例内容
Feb 11 PHP
laravel excel 上传文件保存到本地服务器功能
Nov 14 #PHP
laravel实现图片上传预览,及编辑时可更换图片,并实时变化的例子
Nov 14 #PHP
php实现微信小程序授权登录功能(实现流程)
Nov 13 #PHP
php 命名空间(namespace)原理与用法实例小结
Nov 13 #PHP
在 PHP 和 Laravel 中使用 Traits的方法
Nov 13 #PHP
php 多个变量指向同一个引用($b = &amp;$a)用法分析
Nov 13 #PHP
php 自定义函数实现将数据 以excel 表格形式导出示例
Nov 13 #PHP
You might like
亲密接触PHP之PHP语法学习笔记1
2006/12/17 PHP
mysql_num_rows VS COUNT 效率问题分析
2011/04/23 PHP
PHP中数据类型转换的三种方式
2015/04/02 PHP
php设计模式之职责链模式实例分析【星际争霸游戏案例】
2020/03/27 PHP
PHP 范围解析操作符(::)用法分析【访问静态成员和类常量】
2020/04/14 PHP
JavaScript CSS修改学习第一章 查找位置
2010/02/19 Javascript
XMLHTTPRequest的属性和方法简介
2010/11/23 Javascript
20个非常棒的 jQuery 幻灯片插件和教程分享
2011/08/23 Javascript
JS修改css样式style浅谈
2013/05/06 Javascript
AngularJS ng-bind-html 指令详解及实例代码
2016/07/30 Javascript
Angular2入门教程之模块和组件详解
2017/05/28 Javascript
Node.js 使用命令行工具检查更新
2017/06/08 Javascript
AngularJS自定义指令详解(有分页插件代码)
2017/06/12 Javascript
20行JS代码实现粘贴板复制功能
2018/02/06 Javascript
vue组件实现可搜索下拉框扩展
2020/10/23 Javascript
NodeJs生成sitemap站点地图的方法示例
2019/06/11 NodeJs
js实现无缝轮播图插件封装
2020/07/31 Javascript
JavaScript实现网页计算器功能
2020/10/29 Javascript
深入理解javascript中的this
2021/02/08 Javascript
python实现跨文件全局变量的方法
2014/07/07 Python
独特的python循环语句
2016/11/20 Python
pyspark操作MongoDB的方法步骤
2019/01/04 Python
Python3网络爬虫开发实战之极验滑动验证码的识别
2019/08/02 Python
python3.6生成器yield用法实例分析
2019/08/23 Python
Python调用graphviz绘制结构化图形网络示例
2019/11/22 Python
Python在centos7.6上安装python3.9的详细教程(默认python版本为2.7.5)
2020/10/15 Python
基于Python实现全自动下载抖音视频
2020/11/06 Python
使用Python制作一盏 3D 花灯喜迎元宵佳节
2021/02/26 Python
Carrs Silver官网:英国著名的银器品牌
2020/08/29 全球购物
个性大学生自我评价
2013/12/04 职场文书
中学教师自我鉴定
2014/02/07 职场文书
运动会口号大全
2014/06/07 职场文书
乡镇食品安全责任书
2014/07/28 职场文书
2015年银行信贷员工作总结
2015/05/19 职场文书
2015大学生入党个人自传
2015/06/26 职场文书
三八节活动主持词
2015/07/04 职场文书