PDO 限制和偏移

发布于 2024-10-28 02:33:57 字数 736 浏览 1 评论 0原文

可能的重复:
PHP PDO 绑定值在 LIMIT

使用 LIMIT 和/或 OFFSET 时无法显示数据在prepare语句中,但是如果我不使用LIMIT和OFFSET,我可以显示“Lei Lei”,代码看起来有问题吗?

$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());

Possible Duplicate:
PHP PDO bindValue in LIMIT

I could not display the data when using LIMIT and/or OFFSET in the prepare statement, but I can show "Lei Lei" if I don't use the LIMIT and OFFSET, does the code look wrong?

$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));

This have been change from the original code which worked:

$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());

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

我早已燃尽 2024-11-04 02:33:57

我找到了答案!

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

确实有效

I found the answer!

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

does work

左秋 2024-11-04 02:33:57
$dbh->setAttribute( PDO::ATTR_EMULATE_PREPARES, false );

可以让你绑定变量而不必担心它们的类型

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

will let you bind variables without being bothered of them type

假面具 2024-11-04 02:33:57

编辑:已修复

$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();

Edit: Fixed

$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();
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文