SQL命令有问题吗?

时间:2012-10-04 09:48:40

标签: php mysql

  

可能重复:
  mysql_fetch_array() expects parameter 1 to be resource, boolean given in select

我正在尝试将我的网站从localhost放到我购买的在线主机上。

嗯,有一个问题。我何时使用此命令:

$sql = mysql_query("SELECT * FROM `circles` WHERE `lang`='{$language}'");
while ($row = mysql_fetch_assoc($sql)) {
    echo 'test';
}

然后它给了我这个错误:

  

警告:mysql_fetch_assoc()期望参数1为资源,布线在第20行的/var/www/web/username/site.com/folder/index.php中给出

第20行是:

while ($row = mysql_fetch_assoc($sql)) {

当它在localhost上时有效,但当我将它移动到主机时它不起作用。

我更改了主机名,用户名,密码和数据库名称。但是这个错误仍然存​​在。如果我更改了我的数据库的密码,它会出现一个mysql连接错误。所以它应该是正确的信息。

有没有人有任何想法?

3 个答案:

答案 0 :(得分:1)

错误时

mysql_query()会返回FALSE

$result = mysql_query('...');
if (!$result) {
    die(mysql_error());
}
while ($row = mysql_ftech_assoc($result)) {
    ...
}

答案 1 :(得分:0)

像这样编写你的查询

$sql = mysql_query("SELECT * FROM `circles` WHERE `lang`='{$language}'");
if($sql)
{
     while ($row = mysql_fetch_assoc($sql)) {
        echo 'test';
     }
}
else
{
  die(mysql_error());   //this will print what is wrong in your query.
}

答案 2 :(得分:0)

$language = "igbo";
$sql = mysql_query("SELECT * FROM `circles` WHERE `lang`='$language'");

$result = mysql_query($sql);

//mysql_fetch_assoc() requires a resource result. not SQL statement
// you must query the statement and pass the result to the fetch function => mysql_fetch_assoc()

    while ($row = mysql_fetch_assoc($result)) {
        echo 'test';
}

希望有所帮助