php中金沙国际官网连接方式pdo和mysqli对比分析

 更新时间:2015年02月25日 09:30:56   投稿:hebedich   我要评论
这篇文章主要介绍了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,如下:

复制代码 代码如下:

class User
{
    public $id;
    public $first_name;
    public $last_name;
    public function info()
    {
        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的2种链接方式PDO和mysqli有了新的认识了呢,希望本文能对大家有所帮助。

相关文章

  • 十个PHP高级应用技巧果断收藏

    十个PHP高级应用技巧果断收藏

    PHP,是英文超级文本预处理语言Hypertext Preprocessor的缩写。PHP 是一种 HTML 内嵌式的语言,是一种在服务器端执行的嵌入HTML文档的脚本语言,语言的风格有类似于C语言,被广泛的运用。本文介绍了十个PHP高级应用技巧,一起来看。
    2015-09-09
  • PHP之sprintf函数用法详解

    PHP之sprintf函数用法详解

    这篇文章主要介绍了PHP中sprintf函数用法,以实例形式详细分析了sprintf函数格式化输出的常见用法,具有一定的参考借鉴价值,需要的朋友可以参考下
    2014-11-11
  • PHP处理数组和XML之间的互相转换

    PHP处理数组和XML之间的互相转换

    这篇文章主要介绍了如何使用PHP处理数组和XML之间的互相转换,详细介绍了PHP将XML转换成数组,PHP将数组转换成XML的方法,感兴趣的小伙伴们可以参考一下
    2016-06-06
  • 解析在PHP中使用全局变量的几种方法

    解析在PHP中使用全局变量的几种方法

    本篇文章是对在PHP中使用全局变量的几种方法进行了详细的分析介绍,需要的朋友参考下
    2013-06-06
  • PHP Static延迟静态绑定用法分析

    PHP Static延迟静态绑定用法分析

    这篇文章主要介绍了PHP Static延迟静态绑定用法,结合实例形式较为详细的分析了Static延迟静态绑定的功能,定义及使用技巧,需要的朋友可以参考下
    2016-03-03
  • Php连接及读取和写入mysql金沙国际官网的常用代码

    Php连接及读取和写入mysql金沙国际官网的常用代码

    既然现在你看到了这篇文章,说明你肯定知道PHP和MySQL是怎么一回事,我就不啰嗦了。但为什么你还要继续阅读此文呢?可能是以前你习惯复制粘贴一些代码,并没有真正弄懂代码的含义;也可能你以前弄懂了,但像我一样,有一段时间没有接触,生疏了
    2014-08-08
  • 编译php 5.2.14+fpm+memcached(具体操作详解)

    编译php 5.2.14+fpm+memcached(具体操作详解)

    本篇文章是对编译php5.2.14+fpm+memcached的具体操作进行了详细的分析介绍,需要的朋友参考下
    2013-06-06
  • php截取视频指定帧为图片

    php截取视频指定帧为图片

    这篇文章主要为大家详细介绍了php截取视频指定帧为图片的相关资料,需要的朋友可以参考下
    2016-05-05
  • php通过数组实现多条件查询实现方法(字符串分割)

    php通过数组实现多条件查询实现方法(字符串分割)

    这篇文章主要介绍了php通过数组实现多条件查询实现方法(字符串分割),需要的朋友可以参考下
    2014-05-05
  • 通过PHP CLI实现简单的金沙国际官网实时监控调度

    通过PHP CLI实现简单的金沙国际官网实时监控调度

    继续CLI模式试验,这次通过使用之前的“带延时的死循环”方法,来实现个简单的金沙国际官网实时监控调度功能。
    2009-07-07

最新评论