PDO 语句不适用于 LIKE
PDO statement doesn't work with LIKE
我的表述有问题。我相信它来自 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 ...
您的查询中有两个参数(同名):search。尝试查看此解决方案:
PDO: "Invalid parameter number" when substituting multiple parameters with same value
我的表述有问题。我相信它来自 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 ...
您的查询中有两个参数(同名):search。尝试查看此解决方案:
PDO: "Invalid parameter number" when substituting multiple parameters with same value