为什么不是';当我试图计算表中的行数时,我的PHP不工作吗?

为什么不是';当我试图计算表中的行数时,我的PHP不工作吗?,php,mysql,sql,Php,Mysql,Sql,为什么这不起作用 mysql_select_db('a2943462_Pages'); $num_rows = mysql_query("SELECT COUNT(*) FROM PagesInfo"); echo $num_rows; mysql_query("INSERT INTO `a2943462_Pages`.`PagesInfo`(`ID`, `Title`, `Video`, `Posted`) VALUES ('".$num_rows."', '".$Title."', '".$

为什么这不起作用

mysql_select_db('a2943462_Pages');
$num_rows = mysql_query("SELECT COUNT(*) FROM PagesInfo");
echo $num_rows;
mysql_query("INSERT INTO `a2943462_Pages`.`PagesInfo`(`ID`, `Title`, `Video`, `Posted`) VALUES ('".$num_rows."', '".$Title."', '".$Embed."', '".$name."')");
printf("Last inserted record has id %d\n", mysql_insert_id());
因为它现在呼应: 资源id#9


但我认为它会回显4,因为表中有3行

您应该执行两个查询:

首先查询要显示的内容:

SELECT SQL_CALC_FOUND_ROWS * FROM PagesInfo
以及获取返回的行数的第二个查询:

SELECT FOUND_ROWS()
在中插入返回的行数

php中的查询是

$rows = mysql_query("SELECT SQL_CALC_FOUND_ROWS * FROM PagesInfo");
$rs = mysql_query("SELECT FOUND_ROWS()"); 
$r = mysql_fetch_row($rs); 
mysql_free_result($rs); 
$row_num = $r[0]; 
更改此项:

$num_rows = mysql_query("SELECT COUNT(*) FROM PagesInfo");
为此:

$num_rows = mysql_result(mysql_query("SELECT COUNT(*) FROM PagesInfo"), 0);

这是PHP方法:

$sql="SELECT * FROM pages_info";
$result = mysql_query($sql, $con) or die (echo "$sql" );
$rows = mysql_num_rows($result);

为什么要插入$num_行?这听起来像是一个即将发生的意外。mysql_*函数已被弃用,您的代码易受sql注入攻击。这不是重复。如果是的话,它有更好的答案…我必须把查询放在一个变量中还是只放在第二个变量中?如果我这样做了,我怎么能在找到的值上加1??just by$num_rows=mysql_query(“选择find_rows()”)++;您必须将结果作为普通查询放入第二个查询,您将获得行数,它将返回一个带有一个字段的寄存器,您可以使用别名$rs=mysql\u query(“SELECT FOUND\u rows()”)进行访问$r=mysql\u fetch\u行($rs);mysql_免费_结果($rs)$行数=$r[0];虽然这会起作用,但效率不高,因为mysql数据库会将表中的所有内容发送到php脚本,这是对资源的浪费。。。最好只计算数据库中的行数,然后将值发送到php脚本。这对于脏代码来说是一个很好的答案。用户在脚本中包含了PHP选项,所以我想我应该提供一个PHP解决方案。你可以对收到的每个变量进行智能转义。这是我唯一能顺利完成任务的答案,所有其他答案都感谢我的快速响应,我真的很欣赏它。