php通过Mysqli和PDO连接mysql数据详解
来源:互联网 发布:nodejs调用java api 编辑:程序博客网 时间:2024/05/27 16:40
配置文件
首先我们将连接数据库需要的配置文件,单独出来,这样就不需要每次都去写,需要的时候,直接include或者require包含进来就可以了。如果关于include与require不清楚的,可以查考http://blog.csdn.net/hsd2012/article/details/51089785
文件名conf.php
return array( 'host'=>'127.0.0.1', 'user'=>'root', 'password'=>'',//因为测试,我就不设置密码,实际开发中,必须建立新的用户并设置密码 'dbName'=>'xxpt', 'charSet'=>'utf8', 'port'=>'3306' );
通过mysqli扩展连接
mysqli有两种方式去连接mysql,且支持预处理,一种是面向对象,一种是面向过程。
1.面向过程连接mysql
$dbConf=include 'conf.php'; function openDb($dbConf){ $conn=mysqli_connect($dbConf['host'],$dbConf['user'],$dbConf['password'],$dbConf['dbName'],$dbConf['port']) or die('打开失败'); //当然如上面不填写数据库也可通过mysqli_select($conn,$dbConf['dbName'])来选择数据库 mysqli_set_charset($conn,$dbConf['charSet']);//设置编码 return $conn; } function closeDb($conn){ mysqli_close($conn); }
//1.打开连接 $conn=openDb($dbConf); //2query方法执行增、查、删、改 $sql='SELECT t.`id1` from `t1` as t'; /*************数据查询***************************/ $rs=$conn->query($sql); //从结果集中读取数据 //fetch_assoc:返回键值对形式,键位字段名、fetch_row:返回键值对形式,键值为数值、fetch_array:返回1和2两种形式的组合 $data=array();//保存数据 while($tmp=mysqli_fetch_assoc($rs)){//每次从结果集中取出一行数据 $data[]=$tmp; } //对数据进行相应的操作 print_r($data);//输出数据 /*************数据插入***************************/ $sql='INSERT INTO `t1`(`id1`,`id2`) VALUES(3,4);'; $rs=$conn->query($sql); //3.关闭连接 closeDb($conn);
2.面向对象方式连接mysql$dbConf=include 'conf.php'; //打开 $conn=new mysqli($dbConf['host'],$dbConf['user'],$dbConf['password'],$dbConf['dbName'],$dbConf['port']); if(!$conn){ die('数据库打开失败'); } //执行增删改查 /*************数据查询***************************/ $sql='SELECT t.`id1` from `t1` as t'; $rs=$conn->query($sql);//获取结果集 //通过fetch_assoc、fetch_array、fetch_row从结果集中获取数据 while ($tmp=$rs->fetch_assoc()) { print_r($tmp); } /*************数据删除***************************/ $sql='DELETE FROM `t1` WHERE `id1`=3'; $rs=$conn->query($sql);//获取结果集 print_r($rs);$conn->close(); 3.mysqli预处理主要讲解mysli对象编程的预处理,至于面向过程变成的预处理使用mysqli_prepare就不在介绍$dbConf=include 'conf.php'; //打开 $conn=new mysqli($dbConf['host'],$dbConf['user'],$dbConf['password'],$dbConf['dbName'],$dbConf['port']); if(!$conn){ die('数据库打开失败'); } //执行增删改查 /*************数据查询***************************/ $sql='SELECT * from `t1` as t WHERE id2>?'; $stmt=$conn->prepare($sql); if(!$stmt){ die('sql语句有问题'); } //绑定参数 $id2=2; $stmt->bind_param('i',$id2);//不能写成bind_param('i',2) //执行 $stmt->execute(); //将结果绑定发到指定的参数上 $stmt->bind_result($id1, $id2); //获取结果 while ($tmp=$stmt->fetch()) { print_r('id1='.$id1.',id2='.$id2); echo '</br>'; } //关闭 $stmt->free_result();//释放结果 $stmt->close();//关闭预编译的指令. $conn->close();//关闭连接 预处理绑定参数中参数类型说明如下php使用PDO方式连接mysql$dbConf=include 'conf.php'; //打开 $pdo=myPDO::getInstance($dbConf); /*************数据查询***************************/ $sql='SELECT t.`id1` from `t1` as t'; $rs=$pdo->query($sql); $data=$rs->fetchAll();//取出所有结果 print_r($data); /*************数据更新***************************/ $sql='UPDATE t1 SET t1.`id1`=11 WHERE t1.`id1`=1'; $rs=$pdo->query($sql); /** * 数据库pdo连接 */ class myPDO{ private static $pdo; private function __construct(){ //code } private function __clone(){ //code } /** * 获取实例化的PDO,单例模式 * @return PDO */ public static function getInstance($dbConf){ if(!(self::$pdo instanceof PDO)){ $dsn ="mysql:host=".$dbConf['host'].";port=".$dbConf['port'].";dbname=".$dbConf['dbName'].";charset=".$dbConf['charSet']; try { self::$pdo = new PDO($dsn,$dbConf['user'], $dbConf['password'], array(PDO::ATTR_PERSISTENT => true,PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8")); //保持长连接 self::$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING); } catch (PDOException $e) { print "Error:".$e->getMessage()."<br/>"; die(); } } return self::$pdo; } } pdo支持预处理,推荐使用预处理方式,以防sql注入。
0 0
- php通过Mysqli和PDO连接mysql数据详解
- php通过Mysqli和PDO连接mysql数据详解
- php通过Mysqli和PDO连接mysql数据详解
- PHP连接到mysql的方法--mysqli和PDO
- PHP中MySQL、MySQLi和PDO的用法和区别
- PHP中MySQL、MySQLi和PDO的用法和区别
- PHP中MySQL、MySQLi和PDO的用法和区别
- PHP中MySQL、MySQLi和PDO的用法和区别
- PHP中MySQL、MySQLi和PDO的用法和区别
- PHP中MySQL、MySQLi和PDO的用法和区别
- PHP中MySQL、MySQLi和PDO的用法和区别
- PHP中MySQL、MySQLi和PDO的用法和区别
- PHP中MySQL、MySQLi和PDO的用法和区别
- php 中 mysql和mysqli 还有PDO 关系区别
- php中mysql和mysqli 还有PDO关系区别
- PHP中mysql、mysqli、pdo的区别和用法
- 使用PHP操作mysql和mysqli与PDO的区别
- 使用 MySQLi 和 PDO 向 MySQL 插入数据
- codeforce 796C
- python kafka producer consumer redis数据从kafka发送写人redis
- 搭建: canal部署与实例运行
- INSERT INTO .. ON DUPLICATE KEY用法
- 前端工程
- php通过Mysqli和PDO连接mysql数据详解
- testng的xml文件中包含中文参数
- 简单排列习题 紫书P35
- python input()
- [译] Node.js, Express.js 搭建 HTTP/2 服务器
- 常用排序算法的时间复杂度以及空间复杂度
- ACM公约数和公倍数
- python学习笔记1:动态类型模型
- Linux系统调用及示例