2015-03-01 2 views
0

В моем заявлении есть проблема. Я считаю, что это от 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 ... 
+1

Не могли бы вы показать нам ошибку? – teo

+2

Вы не можете использовать заполнитель с таким же именем более одного раза. Период. –

+0

Возможный дубликат [PDO: «Недопустимый номер параметра» при замене нескольких параметров с одинаковым значением] (http://stackoverflow.com/questions/4710169/pdo-invalid-parameter-number-when-substituting-multiple-parameters-with -same) –

ответ

Смежные вопросы