【发布时间】:2013-05-16 14:32:58
【问题描述】:
我正在尝试创建一个数据库连接文件,以便多个页面与数据库保持恒定连接。我试图理解为什么一组代码就链接到数据库而言有效,而另一组代码则失败。请帮我理解。
这是有效的代码:
$db_connect = mysql_connect('host_name', 'user_name', 'user_password');
if(!$db_connect){
die('Not connected :' . mysql_error());
}
$db_select = mysql_select_db("dispatch", $db_connect);
if(!$db_select){
die('No database :' . mysql_error());
}
我能够建立到服务器的有效连接,以及选择表和运行查询。
这是失败的代码(我希望我的代码看起来像这段代码,但我不明白为什么它无法连接到服务器。):
$db_host = "host_name";
$db_user = "user_name";
$db_pass = "user_password";
$db_name = "user_table";
$db_connect = mysql_connect("$db_host", "$db_user", "$db_pass") or die ("Could not connect to MySQL");
我什至尝试过这段代码,但仍然失败:
$db_host = "host_name";
$db_user = "user_name";
$db_pass = "user_password";
$db_name = "user_table";
$db_connect = @mysql_connect("$db_host", "$db_user", "db_pass") or die ("Could not connect to MySQL");
$db_select = @mysql_select_db("$db_name") or die ("Could not connect to database");
请注意,我尝试从单引号 ( '' ) 切换到双引号 ( " " ) 无济于事。
请帮助我理解。请不要问我为什么不只使用有效的代码。我想了解为什么第二组代码不起作用。
还请注意,这只是我第二次使用 Stack Overflow,我仍在努力掌握它。谢谢。
回击我...
【问题讨论】:
-
Please, don't use
mysql_*functions in new code。它们不再维护,是officially deprecated,可以是dangerous in live code。看到red box?改为了解prepared statements,并使用PDO 或MySQLi - this article 将帮助您决定哪个。如果你选择 PDO,here is a good tutorial. -
您在运行非工作代码时是否在
mysql_error()中收到错误消息? -
是的,我得到了 COULD NOT CONNECT TO MYSQL 错误。
-
你到底为什么要引用变量?
-
@user2335979 - 您在 mysql_connect 调用中将字符串包裹在单引号中?它们在您的问题中用双引号引起来。 PHP 将单引号中的字符串视为文字,因此它使用它们的实际值;如果它们在双引号中,则变量的值将被插值。
标签: php mysql database database-connection