php pdo mysql哪个好_php pdo和mysqli对比选择
1)总的比较
PDO
MySQLi
数据库支持
12种不同的数据库支持
支持MySQL
API
OOP
OOP + 过程
Connection
Easy
Easy
命名参数
支持
不支持
对象映射支持
支持
支持
预处理语句
(客户端)
支持
不支持
性能
快
快
支持存储过程
支持
支持
2 连接方式
先来看下两者连接数据库的方式:
//PDO
$pdo = new PDO("mysql:host=localhost;dbname=database", 'username', 'password');//mysqli, 面向过程方式
$mysqli = mysqli_connect('localhost','username','password','database');//mysqli, 面向对象
$mysqli = new mysqli('localhost','username','password','database');
3 数据库支持
PDO支持多种数据库,但MYSQLI只支持MYSQL
4 命名参数name parameter
PDO的方式:
$params = array(':username' => 'test', ':email' => $mail, ':last_login' => time() - 3600);$pdo->prepare('SELECT * FROM users
WHERE username = :username
AND email = :email
AND last_login > :last_login');
而MYSQLI则麻烦点,不支持这样,只能:
$query = $mysqli->prepare('SELECT * FROM users
WHERE username = ?
AND email = ?
AND last_login > ?');$query->bind_param('sss', 'test', $mail, time() - 3600);$query->execute();
这样的话,一个个对问号的顺序,也比较麻烦,不大方便。
5 ORM映射的支持
比如有个类user,如下:
classUser
{public $id;public $first_name;public $last_name;public functioninfo()
{return '#' . $this->id . ': ' . $this->first_name . ' ' . $this->last_name;
}
}$query = "SELECT id, first_name, last_name FROM users";//PDO
$result = $pdo->query($query);$result->setFetchMode(PDO::FETCH_CLASS, 'User');while ($user = $result->fetch())
{echo $user->info() . "\n";
}
MYSQLI用面向过程的方式:
if ($result = mysqli_query($mysqli, $query)) {while ($user = mysqli_fetch_object($result, 'User')) {echo $user->info()."\n";
}
}
MYSQLI采用面向过程的方式:
//MySQLi, object oriented way
if ($result = $mysqli->query($query)) {while ($user = $result->fetch_object('User')) {echo $user->info()."\n";
}
}
6 防止SQL注入方面:
PDO 手工设置
$username = PDO::quote($_GET['username']);$pdo->query("SELECT * FROM users WHERE username = $username");
使用mysqli
$username = mysqli_real_escape_string($_GET['username']);$mysqli->query("SELECT * FROM users WHERE username = '$username'");
7 preparestament
PDO方式:
$pdo->prepare('SELECT * FROM users WHERE username = :username');$pdo->execute(array(':username' => $_GET['username']));
MYSQLI:
$query = $mysqli->prepare('SELECT * FROM users WHERE username = ?');$query->bind_param('s', $_GET['username']);$query->execute();
php pdo mysql哪个好_php pdo和mysqli对比选择相关推荐
- pdo mysql防注入_Php中用PDO查询Mysql来避免SQL注入风险的方法
当我们使用传统的 mysql_connect .mysql_query方法来连接查询数据库时,如果过滤不严,就有SQL注入风险,导致网站被攻击,失去控制.虽然可以用mysql_real_escape_ ...
- pdo mysql 绑定查询_php mysql PDO 查询操作的实例详解
php mysql PDO 查询操作的实例详解 php mysql PDO 查询操作的实例详解 这篇文章主要介绍了php mysql PDO 查询操作的实例详解的相关资料,希望通过本文能帮助到大家,需 ...
- pdo mysql连接类_PHP PDO-MYSQL:如何在不同类之间使用数据库连接
小编典典 解决方案1 替换class account_info {为class account_info extends connection { 更换 $con = new connection() ...
- php操作mysql的封装类_PHP封装的mysqli数据库操作类示例
本文实例讲述了PHP封装的mysqli数据库操作类.分享给大家供大家参考,具体如下: 由于PHPMySQL操作在PHP5.4以下被弃用而推荐使用mysqli(MySQL Improvement),这里 ...
- php mysql 大量读取_PHP使用PDO从mysql读取大量数据处理详解
前言 本文主要介绍了关于PHP利用PDO从mysql读取大量数据处理的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧. 环境 mysql: 5.6.34 php: 5.6 n ...
- php pdo mysql 预处理_PHP PDO mysql 处理类(prepare 预处理)
使用预处理,动态处理需要操作的字段和值.先使用PDO来动态绑定参数.PDOModel: /** * Description of PDO * * @author Administrator */ cl ...
- mysql敤 罚_php中mysql连接方式PDO使用详解,pdo浣跨敤璇﹁В_PHP教程
php中mysql连接方式PDO使用详解,pdo浣跨敤璇﹁В PDO常用方法: PDO::query()主要用于有记录结果返回的操作(PDOStatement),特别是select操作. PDO::e ...
- mysql敤 罚_php中mysql连接方式PDO使用详解,pdo浣跨敤璇﹁В
php中mysql连接方式PDO使用详解,pdo浣跨敤璇﹁В PDO常用方法: PDO::query()主要用于有记录结果返回的操作(PDOStatement),特别是select操作. PDO::e ...
- pdo插入mysql数据出错_php中通过pdo插入数据时,sql语句错误?
再次先谢谢各位大佬!! 接下来直接看代码: include 'mysql_ini.php'; $sql_select = "select * from word where word = ? ...
最新文章
- 画出漂亮的神经网络图!神经网络可视化工具集锦搜集
- Mysql 中,WEEK 与YEARWEEK函数的参数问题
- YUV图像实时去雾算法的优化与改进
- zz让你成功的九个心理定律
- 9、Power Map—应用拾取坐标系统确定经纬度
- ipaddr库计算区间IP及CIDR的IP段
- C#中使用SoundPlayer播放音频文件(wav文件)
- 江苏广电总台面试java_江苏广电面试 江苏广电25位面试官坐镇终面 - 86资讯网
- step5 . day4 网络编程 基于UDP协议的网络编程流程及API
- C#和C++结构体Socket通信
- 《Windows脚本应用详解》已经出版
- PHP高级教程-高级过滤器
- android学习之路1:前车之鉴之开发环境搭建
- Java多组输入实现 C++多组输入实现
- java 成绩管理系统 报告_Java学生成绩管理系统实验报告
- Ant Design 遭删库!
- unity打开excel表格_unity创建编辑读取EXCEL文件表格数据游戏插件工具Uni-Excel 1.0
- RxJava 沉思录(一):你认为 RxJava 真的好用吗?
- 解决训练时显存不断增大问题
- WEB介绍(beego)
热门文章
- html5 js保存token,vue生成token并保存到本地存储中
- Android开发之APP唤醒小程序,打开小程序,调起小程序以及传参数的实现方法(附加源码)
- linux 查看历史打印,2019-02-01 Linux查看用户/历史命令
- 360获公安部“优秀技术支持单位”等七项荣誉
- iUAP云运维平台v3.0全面支持基于K8s的微服务架构
- 路由有类查找和无类查找方式
- 雅虎正开发聊天机器人挑战对手 不过似乎很难成功
- 通过 pxe(网络安装)完成centos 系统的网络安装
- 会话的清除与建立网络磁盘
- Oracle SQL Parsing Flow Diagram(SQL 解析流程图)