0

我正在尝试使用使用 XAMPP 设置的本地测试服务器连接到在我的本地计算机上运行的 mySQL 数据库。我只是使用没有分配密码的root帐户。我尝试如下,一切似乎都正常。我的信息得到了回应,说我已成功连接。然后我尝试通过在主机、用户名或密码中输入其他任何内容来强制出错,但它仍然显示“连接成功”。

这是我用来连接的代码:

<?php
$db_host = "localhost";
$db_username = "root";
$db_password = "";

$myConn = mysql_connect($db_host, $db_username, $db_password) or die('Connection error: '.mysql_error());
echo 'connection successful';
?>

我想知道是我还是我正在使用的 apache/mySQL 的安装导致了这种荒谬。

4

3 回答 3

0

您的安装必须搞砸一些事情:

marc@panic:~$ php -a
php > $x = mysql_connect('bleargh', 'foo', 'bar') or die(mysql_error());
PHP Warning:  mysql_connect(): Unknown MySQL server host 'bleargh' (2) in php shell code on line 1
Unknown MySQL server host 'bleargh' (2)marc@panic:~$ 

我能想到的大概是你有一个 DNS 服务器,它为所有查找返回一个有效地址,导致所有主机名都得到解析。

于 2012-08-23T05:16:47.550 回答
0

它总是会回'connection successful'显,因为您没有检查连接的状态。

if (!$myConn) {
   echo 'Sorry, there was an error '.mysql_error();
} else {
   echo 'connection successful';
}

根据您执行代码的方式,您可能会遇到以下情况:

如果使用相同的参数对 mysql_connect() 进行第二次调用,则不会建立新链接,而是返回已打开链接的链接标识符。new_link 参数修改了这种行为并使 mysql_connect() 始终打开一个新链接,即使之前使用相同的参数调用了 mysql_connect() 也是如此。在 SQL 安全模式下,此参数被忽略。

因此,要么进行明确的检查,要么:

$myConn = mysql_connect($db_host, $db_username, $db_password, true) or die('Connection error: '.mysql_error());

于 2012-08-23T05:17:14.483 回答
0

试试这个

$db_host = "localhost";
$db_username = "root";
$db_password = "";
$con = mysql_connect($db_host,$db_username,$db_passwd);
if (!$con)
 {
 die('Could not connect: ' . mysql_error());
 }
else
  echo 'connection successful';
  mysql_close($con);
?>
于 2012-08-23T05:19:18.490 回答