$query_Recordset4 = sprintf("SELECT TABLE_NAME FROM information_schema.TABLES
WHERE TABLE_SCHEMA='message' and TABLE_NAME like '1a%nd5'");
$Recordset4 = mysql_query($query_Recordset4, $messageconnection);
$totalRows_Recordset4 = mysql_num_rows($Recordset4);
我在PhpMyAdmin中运行了关于SELECT TABLE_NAME FROM information_schema.TABLES
WHERE TABLE_SCHEMA='message' and TABLE_NAME like '1a%nd5'
的SQL查询。
总共显示了“ 2”行。
但是,我在php中询问答案“ mysql_num_rows”为“ 0”。
“ mysql_num_rows”在SELECT TABLE_NAME FROM information_schema.TABLES
中不起作用吗?
什么是替代方法?
如果其他方法不在内容之下。
$query_Recordset5 = sprintf("SELECT COUNT(*) FROM information_schema.TABLES WHERE TABLE_SCHEMA='message' and TABLE_NAME like '$colname_Recordset6' "); $row_Recordset5 = mysql_fetch_assoc($Recordset5);
“ mysql_fetch_assoc”的结果没有显示任何内容,但在其他mysql_query中有效。我该如何解决这个问题?
答案 0 :(得分:1)
您的问题实际上出在您对sprintf
的调用中,它正在尝试将%n
作为转换规范。您需要将该字符串中的%
更改为%%
,即
$query_Recordset4 = sprintf("SELECT TABLE_NAME FROM information_schema.TABLES WHERE TABLE_SCHEMA='message' and TABLE_NAME like '1a%%nd5'");
您还应该从使用mysql_
函数切换到mysqli_
,因为由于代码中的错误,从PHP5.5开始不推荐使用mysql函数,而从PHP7开始取消了mysql函数。
答案 1 :(得分:0)
从某些表中选择后,方法mysql_num_rows可以很好地计数结果(请参见doc http://php.net/manual/en/function.mysql-num-rows.php)。
只需在表格上选择计数:https://dev.mysql.com/doc/refman/8.0/en/counting-rows.html
PhpMyAdmin中的总行数?您无法以一种查询方式执行此操作。听起来,您尝试做错了事。总行数可以很好地计入一个特定的表。您还可以遍历数据库中的所有表以获取所有记录,但是我认为您并不是真的需要这个(我从未听说过类似的东西)。
顺便说一句。使用mysqli代替mysql
答案 2 :(得分:0)
print_r(mysql_fetch_array($Recordset4));
//更新
$query = mysqli_query($messageconnection, "SELECT COUNT(*) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA='message' and TABLE_NAME like '1a%%nd5'");
$row = mysqli_fetch_assoc($query);
$result_count = $row['COUNT(*)'];
echo $result_count;