连接到数据库但信息返回为bool

时间:2011-09-18 17:31:30

标签: php database arrays boolean associative

mysql_select_db('fireworks', $conn);

$ask = "SELECT * FROM name";
$result = mysql_query($ask, $conn) or die();
while ($info = mysql_fetch_assoc($result));
{
    var_dump($info);
    if (is_array($result)) {
        foreach ($info as $group) {
            print $group;
        } //end foreach
    } else {
        print "fail..";
    }//end debug
} //end while

我用phpmyadmin检查了数据库fireworks CLEARLY中有一个名为'name'的表。当我使用var_dump时,它会显示bool(false)。我听说mysql_fetch_assoc只有在没有剩余的值要打印时才会返回false?

编辑:对不起我应该包含完整的代码:

$conn = mysql_connect("localhost", "root") or die(mysql_error());
if ($conn)
{
    print "<h1>CONNECTED!!!!</h1>";
}//end conn

是的,我在表格中列出了信息,我检查了所有内容的名称:

ID  firstName lastName
1   uraz      The pig
2   Billy     Henson
3   Jean      Jerk
4   Fat       Jerk

3 个答案:

答案 0 :(得分:0)

您似乎没有实际连接到mysql数据库,除非您已经关闭了该代码。此外,如果您的表为空或者没有其他行要提取,mysql_fetch_assoc将返回false。因此,请仔细检查您是否正确选择了数据。

你的mysql用户是否拥有SELECT权限?密码是否正确? fireworks是否是正确的数据库名称?某些网络托管服务商会将您的帐户用户名作为前缀添加到所有数据库中,因此您的帐户可能是bnynn_fireworks(除了您的帐户用户名。)

我不确定这实际上是怎么可能的,虽然你变得虚假,它甚至不应该进入while循环。

答案 1 :(得分:0)

您的代码有逻辑语法错误:

while ($info = mysql_fetch_assoc($result));

目前这会导致它遍历所有行,当它完成时,你留下最后一个值(false)。

你应该:

while ($info = mysql_fetch_assoc($result))

答案 2 :(得分:0)

您发送查询,检索第一行并进行奇怪的检查:

$result = mysql_query($ask, $conn) or die();
while ($info = mysql_fetch_assoc($result));
{
var_dump($info);
if (is_array($result)) // <--- :-?
{
foreach ($info as $group)
{print $group;} //end foreach
}else{
print "fail..";
}//end debug
} /

mysql_query()函数返回资源或布尔 FALSE ,但它永远不会是数组。