【发布时间】:2018-08-19 07:48:14
【问题描述】:
我正在尝试通过 PDO 连接到数据库,我的 db.php 文件如下:
$host = "localhost";
$db = "mydb";
$user = "user";
$pass = "qRES2fIWK8Gg";
try
{
$db = new PDO("mysql:host = $host; dbname = $db", $user, $pass);
$db -> exec ("SET NAMES utf8"); // charset = utf8 doesn't work.
echo "Database connection is successful. <br>";
}
catch (PDOException $e)
{
echo $e -> getMessage();
}
我有两个问题,我认为它们之间存在联系。
当我检查
db.php时,我可以得到Database connection is successful消息,即使我用随机和不正确的值更改了host和dbname。这怎么可能?当我在数据库用户名和密码上尝试相同的过程时,它会出错。-
如果不将其中的数据库名称声明为 PDO,我将无法运行 SQL 查询 不从
db.php获取数据库名称。例如,这个 SQL 查询 不起作用:SELECT * FROM settings WHERE settings_id= :id但是,这个成功了:
SELECT * FROM mydb.settings WHERE settings_id= :id
我在本地主机上工作。在这个问题之后,我认为它与本地主机有关,我将我的项目移动到虚拟主机。但是,这一步并没有解决问题。
【问题讨论】: