【问题标题】:Connected to database but information returns as bool已连接到数据库,但信息返回为 bool
【发布时间】:2011-11-19 18:15:29
【问题描述】:
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

【问题讨论】:

  • 你检查过桌子不是空的吗?
  • 您确定这是您使用的代码吗?如果 $info 为 false,甚至不应该调用 Var_dump。

标签: php database arrays boolean associative


【解决方案1】:

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

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

目前这会导致它循环遍历所有行,当它完成后,你会得到最后一个值 (false)。

你应该有:

while ($info = mysql_fetch_assoc($result))

【讨论】:

  • 你后来还有... if (is_array($result)),我认为你的意思是 if (is_array($info)) 但是不需要作为返回值mysql_fetch_assoc 是一个关联数组。
  • 哦...我是个菜鸟哈哈谢谢大家!我拿走了分号,突然间我所有的信息都出现了。谁能帮忙解释一下分号是怎么做到的?
  • 分号是语句结束符。您不希望语句结束...只要条件为真,您希望它继续并在 while 循环内运行代码。
【解决方案2】:

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

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

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

【讨论】:

  • 他是。如果他不这样做,填充 $result 将失败
【解决方案3】:

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

$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() 函数返回 resource 或布尔值 FALSE,但绝不会是数组。

【讨论】:

    猜你喜欢
    • 2018-04-09
    • 2021-10-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-16
    • 1970-01-01
    • 1970-01-01
    • 2018-10-02
    相关资源
    最近更新 更多