尝试检测选择数据库的错误的奇怪行为

时间:2011-11-01 23:50:41

标签: php mysql

我在php中有以下代码:

<?php
$con = mysql_connect("localhost","john","john");

mysql_select_db("data", $con);
if (!$mysql_select_db) {
    die ('Cannot use data : ' . mysql_error());
}

$result = mysql_query("SELECT * FROM test where huss='hussein'");

while ($row = mysql_fetch_array($result)) {
    echo "ADSDAD";
    echo "<br />";
}

if (!$con) {
    die('ERROR Could not connect: ' . mysql_error());
}

mysql_close($con);
?>

我能够连接到MySQL服务器,但我似乎无法选择相关的数据库。

正在打印的是硬编码文本Cannot use data :,但后面没有MySQL错误消息。如果MySQL连接失败,那么我原本期望在硬编码文本之后出现MySQL错误消息。

我做错了什么?

1 个答案:

答案 0 :(得分:4)

问题出在这里:

mysql_select_db("data", $con);
if (!$mysql_select_db) {
    die ('Cannot use data : ' . mysql_error());
}

您没有变量$mysql_select_db,并且它没有神奇地映射到您上次调用mysql_select_db的结果。

所以,相反:

$result = mysql_select_db("data", $con);
if (!$result) {
    die ('Cannot use data : ' . mysql_error());
}

或者:

if (!mysql_select_db("data", $con)) {
    die ('Cannot use data : ' . mysql_error());
}
相关问题