Php mysql\u num\u行不工作
这是我的php代码Php mysql\u num\u行不工作,php,sql,mysql,Php,Sql,Mysql,这是我的php代码 $sql="SELECT * FROM table_name WHERE FROM_UNIXTIME(date, '%Y') = $q order by id desc"; $q = mysql_query($sql) or die(mysql_error().$sql); $sql1="SELECT * FROM table_name WHERE FROM_UNIXTIME(date, '%Y') = $q"; $query=mysql_query($sql1); 这将正
$sql="SELECT * FROM table_name WHERE FROM_UNIXTIME(date, '%Y') = $q order by id desc";
$q = mysql_query($sql) or die(mysql_error().$sql);
$sql1="SELECT * FROM table_name WHERE FROM_UNIXTIME(date, '%Y') = $q";
$query=mysql_query($sql1);
这将正确地收集结果(一切都是正确的)
但当我用它来计算总结果时,它什么也没有给我,但我得到了例如3个结果:
$total = mysql_num_rows($query);
正如我所看到的,$q是资源而不是字符串值,因此,$sql1查询将因错误而失败,正如我所看到的,$q是资源而不是字符串值,因此,$sql1查询将因错误而失败,因为您的输入不是查询句柄。。。由于您将$q设置为查询句柄,因此应该在mysql_num_rows()中使用它:
因为您的输入不是查询句柄。。。由于您将$q设置为查询句柄,因此应该在mysql_num_rows()中使用它:
如果在实际检索行之前询问行数,数据库可能会返回零或某个中间数。Oracle和MySQL也是如此(不知道MSSQL,但我怀疑是一样的)。从PHP文档:
Note: If you use mysql_unbuffered_query(), mysql_num_rows()
will not return the correct value until all the rows in the
result set have been retrieved.
即使对于缓冲查询,PHP也必须获取所有行才能进行计数。如果在实际检索行之前询问行数,数据库可能会返回零或某个中间数。Oracle和MySQL也是如此(不知道MSSQL,但我怀疑是一样的)。从PHP文档:
Note: If you use mysql_unbuffered_query(), mysql_num_rows()
will not return the correct value until all the rows in the
result set have been retrieved.
即使对于缓冲查询,PHP也必须获取所有行才能对其进行计数。请重新格式化代码样本以确保其易读性,同时请删除恼怒标记!!!!!!谢谢。你的问题真的有效吗?您在第二次查询后尝试过mysql_error()吗?请重新格式化代码样本以确保易读性,同时请删除恼怒标记!!!!!!谢谢。你的问题真的有效吗?您在第二次查询后尝试过mysql_error()吗?特别是,$q首先用于WHERE子句,然后用于保存资源,然后再次用于另一个WHERE子句。此外,WHERE子句中的值没有被引用。特别是,$q首先在WHERE子句中使用,然后用于保存资源,然后再次在另一个WHERE子句中使用。此外,WHERE子句中的值不被引用。