这两种打开连接方式有什么区别?

时间:2019-07-13 13:46:25

标签: php mysqli

我们在很多地方都可以看到这两种类型的代码,用于在PHP中使用Mysqli创建数据库连接,那么它们之间的技术区别是什么?

$conn = mysqli_connect($host,$username,$password,$db_name);

$conn = mysqli_connect($host,$username,$password);
$db_selected = mysqli_select_db($conn,$db_name);

2 个答案:

答案 0 :(得分:0)

没有。他们是一样的。还有第三种更好的方法,您未在此处列出。

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$conn = new \mysqli($host, $username, $password, $db_name);
$conn->set_charset('utf8mb4');

OOP样式更易于阅读且不易出错。此外,您应始终启用异常模式并指定正确的连接字符集。这是最好的方法。

摘自mysqli_select_db的PHP手册:

  

注意:

     

此功能仅应用于更改连接的默认数据库。您可以在mysqli_connect()中选择带有第4个参数的默认数据库。

答案 1 :(得分:0)

在连接时设置数据库名称只是一个方便的快捷方式,因为大多数情况下您想立即开始使用某些特定的数据库。

也许您会感到困惑,因为您假设数据库连接仅限于单个数据库。不是。 $db_name仅仅是选择的数据库。如果您具有适当的特权,则可以使用来自其他数据库的对象(通过将数据库名称指定为前缀),也可以根据需要切换所选数据库的次数(为此使用mysqli_select_db());简单的SQL等效项将是:

USE shop;
SELECT *
FROM orders o
INNER JOIN crm.customers c ON o.customer_id = c.customer_id;
USE crm;
SELECT *
FROM customers;
相关问题