我正在使用PDO从php检索数据。我正在尝试使用极限函数,但遗憾的是它并没有起作用。我在论坛上搜索了类似的问题,找到了与我在下面尝试的类似的答案。但我也收到了同样的警告。我是PDO的新手。我做错什么了吗?
$limit = 5;
$users = $db->prepare("SELECT code,name from Portion where name LIKE '%$t%' LIMIT :limit");
$users->bindParam(':limit', $limit, PDO::PARAM_INT);
$users->execute(['query' => "{$_GET['query']}%"]);
当您想填写PDO查询的参数时,您可以选择
- 在调用
execute()
之前,请使用bindParam()
或bindValue()
绑定它们,或者 - 提供一个值数组作为
execute()
的参数
不能混合使用它们——当您提供数组参数时,它会覆盖bindParam
设置。由于将数组参数传递给execute()
(尽管没有明显的原因,因为SQL中没有:query
参数),:limit
参数将丢失。
将您的代码更改为:
$limit = 5;
$users = $db->prepare("SELECT code,name from Portion where name LIKE CONCAT('%', :pattern, '%') LIMIT :limit");
$users->execute([':pattern' => $t, ':limit' => $limit]);