目前我正在使用:
$query = SELECT * FROM `table` WHERE `id`='column';
$mydata = mysql_query($query);
$element = mysql_result($mydata, 0, "Element");
是否有更快更好的方法来做同样的事情?
答案 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);