Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 执行mysql查询的最佳方法_Php_Mysql - Fatal编程技术网

Php 执行mysql查询的最佳方法

Php 执行mysql查询的最佳方法,php,mysql,Php,Mysql,目前我正在使用: $query = SELECT * FROM `table` WHERE `id`='column'; $mydata = mysql_query($query); $element = mysql_result($mydata, 0, "Element"); 有没有更快更好的方法可以做到这一点?您可以使用mysql、mysqli或PDO。这取决于你的要求,当你选择一个时,你必须考虑几个方面。 如果你只考虑性能,mysql是最快的。虽然mysql_*函数在5.5.x之后已被弃

目前我正在使用:

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

有没有更快更好的方法可以做到这一点?

您可以使用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              |
    +--------------------+----------------------+------------------+
这在mysqli和PDO之间有很好的比较

我的建议是使用PDO

mysql

mysqli

PDO


很抱歉,我对php和mysql不熟悉。你们能告诉我什么是准备好的查询吗?请阅读教程。http://www.w3schools.com/php/php_mysql_prepared_statements.asp & http://php.net/manual/en/mysqli.quickstart.prepared-statements.php 从这里开始。使用mysql_*函数,而不是mysql_*函数,因为这些函数已弃用,将来将被删除。如果mysql_*更快,现代API的安全性/数据完整性方法将大大超过这一微小的性能增益。MyISAM和InnoDB对性能的影响比mysql和mysqli对性能的影响更大。请不要提倡PHP7中不再存在的长期不推荐的mysql函数。此外,这个博客和您的表也不完全正确。谢谢@Gerald Schneider,我更新了表并提到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 = 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 = 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);