PHP:SQL标记没有任何意义
可能重复: 我的代码在上次检查时运行良好,但现在似乎已经坏了。以下是错误:PHP:SQL标记没有任何意义,php,sql,boolean,Php,Sql,Boolean,可能重复: 我的代码在上次检查时运行良好,但现在似乎已经坏了。以下是错误: Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in /home/nerblog/public_html/nerblog/arch.php on line 4 。。。这是第4行的代码: $q=mysql\u querySELECT*FROM main,其中月='$month'和年='$year'限制1
Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in /home/nerblog/public_html/nerblog/arch.php on line 4
。。。这是第4行的代码:
$q=mysql\u querySELECT*FROM main,其中月='$month'和年='$year'限制12个订单,按id描述;
而$sql=mysql\u fetch\u数组$q
您的SQL查询失败。尝试将订单后的“限制”命令移动到查询结束:
SELECT * FROM main WHERE month='$month' AND year='$year' ORDER BY id DESC LIMIT 12
您的SQL查询失败。尝试将订单后的“限制”命令移动到查询结束:
SELECT * FROM main WHERE month='$month' AND year='$year' ORDER BY id DESC LIMIT 12
存在是有原因的
您的SQL语法有错误;检查与MySQL服务器版本相对应的手册,以了解第1行“ORDER BY id DESC”附近使用的正确语法
也就是说,它没想到在你放的地方会看到秩序。这样做的原因是,限额应该在“订单日期”之后,而不是之前。存在是有原因的
您的SQL语法有错误;检查与MySQL服务器版本相对应的手册,以了解第1行“ORDER BY id DESC”附近使用的正确语法
也就是说,它没想到在你放的地方会看到秩序。原因是,限额应在订购日期之后,而不是之前。根据文档: 对于返回resultset的SELECT、SHOW、description、EXPLAIN和其他语句,mysql_query在成功时返回资源,在出错时返回FALSE 对于其他类型的SQL语句,INSERT、UPDATE、DELETE、DROP等,mysql_查询成功时返回TRUE,错误时返回FALSE 如果用户没有访问查询引用的表的权限,mysql\u查询也将失败并返回FALSE mysql\u fetch\u数组函数需要mysql\u查询返回一个结果资源。如果调用失败,它将返回false,这就是传递给mysql\u fetch\u数组函数的内容,因此它失败 问题实际上在SQL中。您需要将LIMIT子句放在查询的最后,如下所示:
SELECT * FROM main WHERE month='$month' AND year='$year' ORDER BY id DESC LIMIT 12
确保查询中的错误不会渗入其他代码的一种方法是首先检查值:
$q = mysql_query("SELECT * FROM main WHERE month='$month' AND year='$year' ORDER BY id DESC LIMIT 12");
if($q != FALSE)
{
// Query didn't fail, so get results
while ($result = mysql_fetch_array($q))
{
// Do something with $result
}
}
根据文件: 对于返回resultset的SELECT、SHOW、description、EXPLAIN和其他语句,mysql_query在成功时返回资源,在出错时返回FALSE 对于其他类型的SQL语句,INSERT、UPDATE、DELETE、DROP等,mysql_查询成功时返回TRUE,错误时返回FALSE 如果用户没有访问查询引用的表的权限,mysql\u查询也将失败并返回FALSE mysql\u fetch\u数组函数需要mysql\u查询返回一个结果资源。如果调用失败,它将返回false,这就是传递给mysql\u fetch\u数组函数的内容,因此它失败 问题实际上在SQL中。您需要将LIMIT子句放在查询的最后,如下所示:
SELECT * FROM main WHERE month='$month' AND year='$year' ORDER BY id DESC LIMIT 12
确保查询中的错误不会渗入其他代码的一种方法是首先检查值:
$q = mysql_query("SELECT * FROM main WHERE month='$month' AND year='$year' ORDER BY id DESC LIMIT 12");
if($q != FALSE)
{
// Query didn't fail, so get results
while ($result = mysql_fetch_array($q))
{
// Do something with $result
}
}
这是一个布尔值,因为您的查询无效。这是一个布尔值,因为您的查询无效