Php 使用Mysqli:有没有一种方法不必每次查询都连接到数据库?
我刚刚开始使用Php 使用Mysqli:有没有一种方法不必每次查询都连接到数据库?,php,mysql,sql,database,mysqli,Php,Mysql,Sql,Database,Mysqli,我刚刚开始使用MYSQLi而不是MYSQL,我遇到了一个巨大的麻烦:每次查询都必须连接到数据库等等。为什么我现在必须这样做,而我在旧MYSQL中没有这样做?或者有没有一种方法不必这样做 举几个例子: Mysql: mysql_query("SELECT id FROM table"); 现在在Mysqli中,我总是要做: mysqli_query($db, "SELECT id FROM table"); 此外,我还必须与以下人员合作: mysqli_last_id($db); 及 我整晚
MYSQLi
而不是MYSQL
,我遇到了一个巨大的麻烦:每次查询都必须连接到数据库等等。为什么我现在必须这样做,而我在旧MYSQL中没有这样做?或者有没有一种方法不必这样做
举几个例子:
Mysql:
mysql_query("SELECT id FROM table");
现在在Mysqli中,我总是要做:
mysqli_query($db, "SELECT id FROM table");
此外,我还必须与以下人员合作:
mysqli_last_id($db);
及
我整晚都在试图找到这个问题的答案,但我什么也找不到。是的,不要使用mysql函数,它们已被弃用。改用PDO
有一些事情需要澄清
global$db代码>在函数内部
这里可以找到使用缓存的示例MySQL扩展试图在全局范围内重用使用
MySQL\u connect
建立的最新连接。在同一个脚本中处理多个连接时,这是不直观且危险的。这是它被弃用的原因之一。你真的应该使用MySQLi的面向对象版本,创建一个db对象并通过脚本重用它。创建你自己的数据库类,面向对象!我使用的是MySQLi\uu
而不是MySQL\u
几乎是一样的。。。使用更好的,PDO。
mysqli_real_escape_string($db);
$pdo = new PDO(/* Connection options */);
$rows = $pdo->query("SELECT * FROM table")->fetchAll(PDO::FETCH_OBJ);
foreach ($rows as $row) {
print_r($row);
}
$pdo->query("INSERT INTO table SET field1 = 'value1'");