如何在 PHP 中打印连接的数据库信息(例如数据库名称)?

Posted

技术标签:

【中文标题】如何在 PHP 中打印连接的数据库信息(例如数据库名称)?【英文标题】:How can I print the connected database information (such as db name) in PHP? 【发布时间】:2021-12-06 09:36:56 【问题描述】:

我正在尝试在 php 中执行 SQL 查询,但即使已连接数据库,它也会返回 0 行,但是当我尝试在 MSSQL 中执行相同的查询时,它会返回一行。

我已经尝试过下面的方法,但它只返回布尔值 false:

$selecteddb = $dbi->query('select database()');
var_dump($selecteddb);

这是我执行查询的方式:

$user_sql = "SELECT * from users where username='myusername' AND password='pass123'";
$user_res = $dbi->prepare($user_sql);
$user_res->execute();
$user_data = $user_res->fetchAll();
$user_unum = count($user_data);

我只是想验证我是否真的连接到正确的数据库。

更新:

我需要一个等效的mysql_db_name 来打印数据库名称。这个已弃用,在 php 7 中不起作用。

【问题讨论】:

如果您得到布尔值false,则表示查询以某种方式失败。在 PDO 中启用错误检查以找出原因。详情见php.net/manual/en/pdo.error-handling.php 但是为什么要问mysql这个呢?您的 PHP 代码肯定是告诉 mysql 在打开连接时选择哪个数据库的代码吗?那么你的 PHP 代码真的应该已经知道这些信息而不需要询问 mysql 服务器吗? @ADyson 我只想真正能够打印连接数据库的名称和其他信息。这样我可以确保我实际上连接到正确的人。 但是就像我说的,当你创建 PDO 连接时,你会将该信息传递给 mysql,所以你不需要再次询问......你可以从连接中检索该信息详情。 如果您想在 SQL Server 中执行此操作,请使用 select db_name()(根据 ***.com/questions/39734735/… 和其他 100 个) 【参考方案1】:

尝试“选择 db_name()”而不是“选择数据库()”

【讨论】:

以上是关于如何在 PHP 中打印连接的数据库信息(例如数据库名称)?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 php pdo 中的 2 个表获取 1 个表用户详细信息?

在 PHP 中设置数据库连接类

PHP不将数据库打印为表

php 如何在页面刷新时不重复操作数据库?

怎么打印php版本信息

php+mysql,将用户session信息存到数据库,如何及时删掉登陆超时的用户信息呢?