我的陈述中有一个问题。我相信它来自LIKE,因为如果我删除它,它运作良好。这是我最终得到的,但它仍然没有取得任何结果:
$search = '%' . $_POST['search'] . '%';
switch($_POST['sortby']) {
case 'new':
$sortby = 'code DESC';
break;
case 'popular':
$sortby = 'RAND()';
break;
case 'cheap':
$sortby = 'price ASC';
break;
case 'expensive':
$sortby = 'price DESC';
break;
default:
$sortby = 'code DESC';
break;
}
$start = $_POST['start'];
$end = $_POST['end'];
$STH = $DBH->prepare("SELECT id, code, name, oldprice, price, date, status FROM products_retail WHERE (code LIKE :search OR name LIKE :search) AND status<>0 ORDER BY $sortby LIMIT :start, :end");
$STH->bindParam(':search', $search, PDO::PARAM_STR);
$STH->bindParam(':start', $start, PDO::PARAM_INT);
$STH->bindParam(':end', $end, PDO::PARAM_INT);
$STH->execute();
任何帮助都是适当的。
[编辑]这是错误:
PHP Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY093]: Invalid parameter number' in ...
答案 0 :(得分:3)
您有两个参数(名称相同):在您的查询中搜索。试着看看这个解决方案:
PDO: "Invalid parameter number" when substituting multiple parameters with same value