做mysql查询的最佳方法

时间:2016-01-08 05:07:12

标签: php mysql

目前我正在使用:

$query = SELECT * FROM `table` WHERE `id`='column';
$mydata = mysql_query($query);
$element = mysql_result($mydata, 0, "Element");

是否有更快更好的方法来做同样的事情?

1 个答案:

答案 0 :(得分:6)

您可以使用mysql,mysqli或PDO。这取决于您的要求,当您选择一个时,您必须考虑几个方面。

如果你只考虑性能,mysql是最快的。虽然mysql_ *函数在5.5.x之后已弃用,但在PHP7中不存在。

但是如果您正在考虑数据库支持,API,命名参数,对象映射,准备语句,存储过程等,您可以在mysqli或PDO之间选择一个。 mysqli仅支持mysql数据库,而PDO支持12个数据库。

    +--------------------+----------------------+------------------+
    |                    | PDO                  | MySQLi           |
    +--------------------+----------------------+------------------+
    | Database support   | 12 different drivers | MySQL only       |
    | API                | OOP                  | OOP + procedural |
    | Connection         | Easy                 | Easy             |
    | Named parameters   | Yes                  | No               |
    | Object mapping     | Yes                  | Yes              |
    | Prepared statements| Yes                  | Yes              |
    | (client side)                                                |
    | Performance        | Fast                 | Fast             |
    | Stored procedures  | Yes                  | Yes              |
    +--------------------+----------------------+------------------+

这个blog在mysqli和PDO之间进行了很好的比较

我的建议是使用PDO。

<强> MySQL的

$c = mysql_connect("example.com", "user", "password");
mysql_select_db("database");
$result = mysql_query("SELECT id, first_name, last_name FROM users");
$rows = mysql_fetch_assoc($result);
var_dump($rows);

<强> 的mysqli

$mysqli = new mysqli("example.com", "user", "password", "database");
$result = $mysqli->query("SELECT id, first_name, last_name FROM users");
$row = $result->fetch_assoc();
var_dump($rows);

<强> PDO

$pdo = new PDO('mysql:host=example.com;dbname=database', 'user', 'password');
$statement = $pdo->query("SELECT id, first_name, last_name FROM users");
$row = $statement->fetch(PDO::FETCH_ASSOC);
var_dump($rows);