0

我在 php 中将值绑定到 mysql 查询时遇到问题。

$this->conn->prepare("SELECT * FROM tablename LIMIT ? , ? ");
$pageStart = 11; 
$pageEnd = 20 ;
$stmt->bind_param("ii" , $pageStart , $pageEnd );
$stmt->execute();

这将返回 20 行。有什么帮助吗?

4

4 回答 4

3

这是正确的行为。

文档中:

...
[LIMIT {[offset,] row_count | row_count OFFSET offset}]
...

逗号后面的数字是rowcount。

如果您想要 10 条记录,只需告诉您:

SELECT * FROM tablename LIMIT 11 , 10;
于 2015-08-27T07:11:32.237 回答
2

查询正在正确执行。根据预期输出,您的参数具有不正确的值。

如果你想从11-20查询记录应该是:

SELECT * FROM tablename LIMIT 11 , 10

当您将 20 作为第二个参数传递时,它返回 20 行

您可以使用LIMIT offset, row_ countLIMIT row_count OFFSET offset

请参阅文档http://dev.mysql.com/doc/refman/5.0/en/select.html

于 2015-08-27T07:11:41.370 回答
0

$pageStart = 11; 表示从 11 开始的结果,表示 11$pageEnd = 20 ;之后的 20 结果

所以你现在得到 20 个结果。

要获得高达 10 的结果,您需要设置$pageEnd = 10.它将返回您result 11 to 21

于 2015-08-27T07:12:52.877 回答
0

关于变量的名称,您应该更改

$stmt->bind_param("ii" , $pageStart , $pageEnd );

$stmt->bind_param("ii" , $pageStart , $pageEnd - $pageStart + 1);

因为第二个参数LIMIT是要选择的行数。第一个参数是偏移量。

于 2015-08-27T07:14:00.130 回答