eme*_*his 3 php mysql sql wordpress
我试图在我限制它之前获取我的查询返回的总行数。我正在尝试使用这里找到的建议,它使用:SQL_CALC_FOUND_ROWS然后FOUND_ROWS()在第二个查询中;
他们举了这个例子:
SELECT SQL_CALC_FOUND_ROWS something FROM your_table WHERE whatever;
SELECT FOUND_ROWS( ) ;
Run Code Online (Sandbox Code Playgroud)
我无法弄清楚的是如何将第二个值从FOUND_ROWS()PHP 变量中捕获。我在 Wordpress 中工作,所以我使用全局 $wpdb 来处理 MySQL 交互。这是我正在尝试的简化版本:
$rows = $wpdb->get_results( "SELECT SQL_CALC_FOUND_ROWS something FROM your_table WHERE whatever;" );
$count = $wpdb->get_results( "SELECT FOUND_ROWS();" );
Run Code Online (Sandbox Code Playgroud)
第一个查询有效,但 $count 始终为空。如果我在 phpMyAdmin 中运行它们,查询运行不会出错。
我也试过这个:
$rows = $wpdb->get_results( "SELECT SQL_CALC_FOUND_ROWS something FROM your_table WHERE whatever;
SET @count = FOUND_ROWS();" );
Run Code Online (Sandbox Code Playgroud)
...但它完全失败了。
我究竟做错了什么?
如果这是 Wordpress,您可以对第二个语句进行替代,否则您需要的是一个数组而不是数字:
$count = $wpdb->get_var('SELECT FOUND_ROWS()');
Run Code Online (Sandbox Code Playgroud)
还要注意,由于过滤器,wordpress 的数据库类对任何查询的更改都是开放的,并且默认情况下会抑制错误,执行查询并从结果集中获取。
您应该启用尖叫以查看是否遇到特定错误。
$wpdb->show_errors = true如果WP_DEBUG设置为,则自动显示错误true。(参考)