【发布时间】: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()(根据 stackoverflow.com/questions/39734735/… 和其他 100 个)
标签: php sql sql-server pdo