В моем заявлении есть проблема. Я считаю, что это от LIKE, так как если я удалю его, он будет работать хорошо. Это то, что я наконец-то получил, но он по-прежнему не принести никаких результатов:Заявление PDO не работает с 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();
Любая помощь appriciated.
[EDIT] Это ошибка:
PHP Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY093]: Invalid parameter number' in ...
Не могли бы вы показать нам ошибку? – teo
Вы не можете использовать заполнитель с таким же именем более одного раза. Период. –
Возможный дубликат [PDO: «Недопустимый номер параметра» при замене нескольких параметров с одинаковым значением] (http://stackoverflow.com/questions/4710169/pdo-invalid-parameter-number-when-substituting-multiple-parameters-with -same) –