我正在使用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']}%"]);
答案 0 :(得分:1)
如果要填写PDO查询的参数,可以
bindParam()
或bindValue()
或execute()
绑定它们
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]);