PHP-MySQL LIMIT 子句有问题
PHP-MySQL issue with LIMIT clause
require 'conn.php';
$cardPerRow = isset($_GET['rpp']) ? $_GET['rpp'] : 9;
$page = isset($_GET['page']) ? $_GET['page'] : 1;
$offset = $cardPerRow * ($page-1);
var_dump($offset);var_dump($cardPerRow);
$query = "SELECT * FROM dbname.prodotti LIMIT ? OFFSET ?;";
$stmt = $conn->prepare($query);
//$stmt->bindParam(':offset',$offset);
//$stmt-> bindParam(':cardPerRow',$cardPerRow);
$stmt ->execute([$cardPerRow,$offset]);
$data = $stmt ->fetchAll();
echo json_encode($data);
此代码 return 一个空数组,但是如果我 运行 在我的数据库上查询它 return 是我的数据。
我真的不知道为什么,对我来说一切都很好。有什么我没看到的吗?提前致谢。
不能对 LIMIT 和 OFFSET 子句中的数字使用绑定参数。您必须将这些数字直接嵌入查询文本中。
而且,如果您检查过错误,那将会很清楚。请阅读这个。 Turning query errors to Exceptions in MySQLi
require 'conn.php';
$cardPerRow = isset($_GET['rpp']) ? $_GET['rpp'] : 9;
$page = isset($_GET['page']) ? $_GET['page'] : 1;
$offset = $cardPerRow * ($page-1);
var_dump($offset);var_dump($cardPerRow);
$query = "SELECT * FROM dbname.prodotti LIMIT ? OFFSET ?;";
$stmt = $conn->prepare($query);
//$stmt->bindParam(':offset',$offset);
//$stmt-> bindParam(':cardPerRow',$cardPerRow);
$stmt ->execute([$cardPerRow,$offset]);
$data = $stmt ->fetchAll();
echo json_encode($data);
此代码 return 一个空数组,但是如果我 运行 在我的数据库上查询它 return 是我的数据。 我真的不知道为什么,对我来说一切都很好。有什么我没看到的吗?提前致谢。
不能对 LIMIT 和 OFFSET 子句中的数字使用绑定参数。您必须将这些数字直接嵌入查询文本中。
而且,如果您检查过错误,那将会很清楚。请阅读这个。 Turning query errors to Exceptions in MySQLi