我在 php 中将值绑定到 mysql 查询时遇到问题。
$this->conn->prepare("SELECT * FROM tablename LIMIT ? , ? ");
$pageStart = 11;
$pageEnd = 20 ;
$stmt->bind_param("ii" , $pageStart , $pageEnd );
$stmt->execute();
这将返回 20 行。有什么帮助吗?
这是正确的行为。
从文档中:
...
[LIMIT {[offset,] row_count | row_count OFFSET offset}]
...
逗号后面的数字是rowcount。
如果您想要 10 条记录,只需告诉您:
SELECT * FROM tablename LIMIT 11 , 10;
查询正在正确执行。根据预期输出,您的参数具有不正确的值。
如果你想从11-20
查询记录应该是:
SELECT * FROM tablename LIMIT 11 , 10
当您将 20 作为第二个参数传递时,它返回 20 行
您可以使用LIMIT offset, row_ count
或LIMIT row_count OFFSET offset
$pageStart = 11;
表示从 11 开始的结果,表示 11$pageEnd = 20 ;
之后的 20 结果
所以你现在得到 20 个结果。
要获得高达 10 的结果,您需要设置$pageEnd = 10.
它将返回您result 11 to 21
关于变量的名称,您应该更改
$stmt->bind_param("ii" , $pageStart , $pageEnd );
至
$stmt->bind_param("ii" , $pageStart , $pageEnd - $pageStart + 1);
因为第二个参数LIMIT
是要选择的行数。第一个参数是偏移量。