首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >这两种打开连接的方式有什么不同?

问这两种打开连接的方式有什么不同?
EN

Stack Overflow用户
提问于 2019-07-13 21:46:26
回答 2查看 104关注 0票数 0

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

代码语言:javascript
复制
$conn = mysqli_connect($host,$username,$password,$db_name);

和

代码语言:javascript
复制
$conn = mysqli_connect($host,$username,$password);
$db_selected = mysqli_select_db($conn,$db_name);
EN

回答 2

Stack Overflow用户

发布于 2019-07-13 21:51:47

没有。它们是一样的。还有第三种更好的方法,你没有在这里列出。

代码语言:javascript
复制
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()中的第四个参数选择默认数据库。

票数 0
EN

Stack Overflow用户

发布于 2019-07-13 22:18:42

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

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

代码语言:javascript
复制
USE shop;
SELECT *
FROM orders o
INNER JOIN crm.customers c ON o.customer_id = c.customer_id;
代码语言:javascript
复制
USE crm;
SELECT *
FROM customers;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57019735

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档