可能重复:
LIMIT中的PHP PDO bindValue
在准备语句中使用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));
Run Code Online (Sandbox Code Playgroud)
这已经从原来的代码改变了:
$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());
Run Code Online (Sandbox Code Playgroud)
pro*_*yb2 20
我找到了答案!
$statement->bindValue(':sta1', (int) $start, PDO::PARAM_INT);
Run Code Online (Sandbox Code Playgroud)
确实有效
$dbh->setAttribute( PDO::ATTR_EMULATE_PREPARES, false );
Run Code Online (Sandbox Code Playgroud)
将让你绑定变量而不会被它们打扰
编辑:已修复
$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();
Run Code Online (Sandbox Code Playgroud)