我在准备语句中使用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());
答案 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();