PDO LIMIT和OFFSET

时间:2011-04-01 03:58:40

标签: php pdo

  

可能重复:
  PHP PDO bindValue in LIMIT

我在准备语句中使用LIMIT和/或OFFSET时无法显示数据,但如果我不使用LIMIT和OFFSET,我可以显示“雷磊”,代码看起来是错误的吗?

$statement = $conn->prepare("SELECT id,username FROM public2 WHERE username = :name LIMIT :sta OFFSET :ppage");
$name = "Lei Lei";
$statement->execute(array(':name' => $name,':sta' => $start,':ppage' => $per_page));

这已经改变了原来的代码:

$query_pag_data = "SELECT id,username from public2 LIMIT $start, $per_page";
$result_pag_data = mysql_query($query_pag_data) or die('MySql Error' . mysql_error());

3 个答案:

答案 0 :(得分:19)

我找到了答案!

$statement->bindValue(':sta1', (int) $start, PDO::PARAM_INT); 

有效吗

答案 1 :(得分:7)

$dbh->setAttribute( PDO::ATTR_EMULATE_PREPARES, false );

将允许您绑定变量而不会被它们打扰

答案 2 :(得分:0)

修改:已修复

$statement = $conn->prepare("SELECT id,username FROM public2 WHERE username = :name LIMIT :limit OFFSET :offset");
$name = "Lei Lei";
$statement->bindValue(':name', $name);
$statement->bindValue(':limit', (int) $start, PDO::PARAM_INT);
$statement->bindValue(':offset', (int) $per_page, PDO::PARAM_INT);
$statement->execute();