0

我正在尝试将脚本从基本 sql 转换为 pdo。我不太擅长,但我已经走到了这一步,我的 pdo 返回数据库中的所有行(限制 12)我可以制作 2 个语句,一个没有限制,一个有限制。但是在最初存在的 sql 中,它使用QL_CALC_FOUND_ROWS了我认为的方法,即我返回总行数和限制行数,以便查询更快。

我怎么能用 PDO 做到这一点?

代码:

<?
// NORMAL SQL
$result = mysql_query('SELECT SQL_CALC_FOUND_ROWS * FROM photos ORDER BY id ASC limit 12');
$row_object = mysql_query('SELECT Found_Rows() AS rowcount');
$row_object = mysql_fetch_object($row_object);
$actual_row_count = $row_object->rowcount;

// PDO

$result = $pdo->prepare('SELECT * FROM photos ORDER BY id ASC limit 12');
$result->execute();
$TOTALrows = $result->rowCount();

?>

编辑:尝试了一些东西,但这不起作用:

$result = $pdo->prepare('SELECT SQL_CALC_FOUND_ROWS * FROM photos ORDER BY id ASC limit 12');
$result->execute();

$resultALL = $pdo->prepare('SELECT Found_Rows() AS rowcount');
$resultALL->execute();
$resultALL->fetch(PDO::FETCH_OBJ);
$actual_row_count = $resultALL->rowcount;

EDIT2:仍然没有成功..

    $result = $pdo->query('SELECT SQL_CALC_FOUND_ROWS * FROM photos ORDER BY id ASC limit 12');
$resultALL = $pdo->query('SELECT Found_Rows() AS rowcount');
$resultALL->fetch(PDO::FETCH_OBJ);
$actual_row_count = $resultALL->rowcount;

print_r($actual_row_count);
echo $actual_row_count;

不回声任何东西。

4

1 回答 1

0

学分也转到这里的爆炸药丸......

当您不使用外部输入提供查询时,您实际上不必准备语句:

$result = $pdo->query("SELECT SQL_CALC_FOUND_ROWS * FROM photos ORDER BY id ASC LIMIT 12");

这应该工作!

于 2013-09-04T18:25:17.053 回答