0
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中很明显有一个名为“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
4

3 回答 3

0

您似乎并没有真正连接到 mysql 数据库,除非您关闭了该代码。此外,如果您的表为空或没有更多行可获取,mysql_fetch_assoc将返回 false。因此,请仔细检查您是否正确选择了数据。

你的 mysql 用户有 SELECT 权限吗?密码是否正确?fireworks数据库名称是否正确?一些网络主机会将您的帐户用户名作为前缀附加到所有数据库,所以您的可能是bnynn_fireworks(除了您的帐户用户名。)

我不确定这实际上是如何实现的,尽管您弄错了,它甚至不应该进入 while 循环。

于 2011-09-18T17:35:53.010 回答
0

您的代码存在逻辑语法错误:

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

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

你应该有:

while ($info = mysql_fetch_assoc($result))
于 2011-09-18T17:43:53.797 回答
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,但它永远不会是数组。

于 2011-09-18T17:49:04.447 回答