可能重复:
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连接错误。所以它应该是正确的信息。
有没有人有任何想法?
答案 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';
}
希望有所帮助