php pdo连接数据库操作示例
本文实例讲述了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基于pdo操作数据库技巧总结》、《php+mysqli数据库程序设计技巧总结》、《php面向对象程序设计入门教程》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》
希望本文所述对大家PHP程序设计有所帮助。
- 史上最逼真人形机器人堪比健身教练,技能满满还会流汗
- 被监管前的疏忽?互联网金融大面积逾期,中介行为不容忽视
- 达尔文漏算的一步却让它填补,科学家认为人类最初认可的进化论不再适用
- 假如黑客攻击您的互联网汽车会怎么样?
- 享学课堂谈-Python初学者的设计模式入门
- 本体网络Ontology Zero入选国家工信部区块链开源项目计划
- 完全无人驾驶将首先在中国大城出现
- 榴莲售出的三拼域名ancaiyun.com 已建站
- 微信提现免费!申请微信免费提现的教程
- 程序员也是天文学家?利用机器学习寻找行星
- python及numpy,pandas易混淆的点
- 也许 vue+css3 做交互特效更简单
- 2017年你不可不知的十大黑科技!涨见识!
- 土豪!网络营销”英文域名Emarketing.com交易
- php概述
- php教程
- php环境搭建
- PHP书写格式
- php变量
- php常量
- PHP注释
- php数组
- php字符串 string
- PHP整型 integer
- PHP浮点型 float
- php布尔型
- php数据类型之数组
- php数据类型之对象
- php数据类型之null
- php数据类型之间的转换
- php运算符
- php表达式
- PHP循环控制
- PHP流程控制
- php函数
- php全局变量
- PHP魔术变量
- php命名空间
- php 日期
- PHP包含文件
- php文件
- PHP 文件上传
- php Cookies
- php Sessions
- php email
- php安全email
- php错误处理
- PHP异常处理
- php过滤器
- PHP 高级过滤器
- php json
- php 表单
- PHP MySQL 简介
- PHP 连接 MySQL
- php创建数据库
- php 创建表
- php mysq 插入数据
- PHP MySQL 插入多条数据
- PHP MySQL 预处理语句
- php mysql 读取数据
- php mysql where
- PHP MySQL Order By
- PHP MySQL Update
- PHP MySQL Delete
- php ODBC
- c++STL容器之string容器
- AWS(Amazon Linux 2 AMI)在线迁移到腾讯云
- 2020-08-26:裸写算法:树的非递归先序遍历。
- TypeScript手记(一)
- Codeforces Round #665 (Div. 2)
- MONGODB 加索引 大内存 与连锁思维
- 3分钟短文|Laravel 使用like匹配字符串的用法示例
- 3分钟短文|Laravel命令行调用控制器方法,你会几个?
- 3分钟短文 | Laravel 给所有视图追加公共数据
- 为主题用pugjs编写的hexo博客添加网站运行时间
- Qt UDP广播
- Qt文件操作QFile
- 终端shell美化
- Qt CMake GUI项目生成脚本
- Hexo + Git Pages搭建个人博客(一)