PHP mysql_fetch_array()根本不工作

时间:2013-07-28 18:04:35

标签: php mysql resources

我真的不知道为什么这不起作用。我想要做的只是简单地获取我的数据库中的所有电子邮件然后回显它们,但无论我尝试什么,mysql_fetch_array都无法正常工作。不是SQL查询不起作用,因为我添加了一个if语句,如果它不工作就死了,不仅如此,但我已经使用了PHPMyAdmin,并完成了完全相同的查询,它的工作原理

这是我的代码

<?php
$dbc = mysql_connect('localhost', 'root', ''); //host, username, pass
$db = mysql_select_db('habbo', $dbc);

if(!$dbc || !$db)
    die("Unknown Error.");

$sql = "SELECT `email` FROM `logininfo` WHERE `id` = '1'";
mysql_query($sql);

if(!$sql)
    die(mysql_error());

while($row = mysql_fetch_array($sql))
    echo $row['email'] . " ";

&GT;

所以,我不知道发生了什么,我的两个错误陷阱都没有出现,当我进入页面说这个时我只是得到一个错误

Warning: mysql_fetch_array() expects parameter 1 to be resource, string given on line 14

我认为这意味着查询被破坏,但查询不是,因为正如我之前所说,我已经设置了错误陷阱,并在PHPMyAdmin中尝试了查询,因此XAMPP可能有问题,或者其他的东西。我已经重新启动了Apache和MySQL,但我仍然遇到了同样的错误。

4 个答案:

答案 0 :(得分:1)

您正在尝试从sql文本中获取结果,而不是查询的结果;

$sql = "SELECT `email` FROM `logininfo` WHERE `id` = '1'";
$res = mysql_query($sql);

if(!$res)
    die(mysql_error());

while($row = mysql_fetch_array($res))
    echo $row['email'] . " ";

答案 1 :(得分:0)

$sql实际上是一个字符串,而不是从MySQL访问结果所需的资源。

您需要存储mysql_query()的结果,检查是否为假,并致电mysql_error(),否则将其传递给mysql_fetch_array()

答案 2 :(得分:0)

$sql应为mysql_query()。可能还会添加MYSQL_ASSOC

类似的东西:

$result = mysql_query("SOME QUERY");
while($row = mysql_fetch_array($result, MYSQL_ASSOC)){
    echo $row['email'] . " ";
}

答案 3 :(得分:0)

您没有将mysql_query($sql)函数的结果设置为变量。因此,您在代码的后半部分使用了一个字符串。

试试这个:

<?php
$dbc = mysql_connect('localhost', 'root', ''); //host, username, pass
$db = mysql_select_db('habbo', $dbc);

if(!$dbc || !$db)
    die("Unknown Error.");

$sql = "SELECT `email` FROM `logininfo` WHERE `id` = '1'";
$result = mysql_query($sql);

if(!$result)
    die(mysql_error());

while($row = mysql_fetch_array($result))
    echo $row['email'] . " ";
?>