2013-10-24 7 views
-2

мой код здесь является частью jQuery ajax-вызова и возвращает все результаты в базе данных, а не только элементы, которые я ввел, и я не могу понять, почему, какие-либо предложения?pdo LIKE не работает

$lname = '%'.$_POST['lname'].'%'; 

$database->query("SELECT * FROM cust WHERE org_id = :org_id AND lname LIKE :lname"); 
$database->bind(':lname',$lname); 
$database->bind(':org_id',$_SESSION['org_id']); 
$existing = $database->resultset(); 

много спасибо заранее

+2

вы имеете в виду, что возвращает все 'ord_id = ... 'строк, независимо от lname? Вы подтвердили, что $ _POSt ['lname'] содержит то, что вы думаете, что он делает? –

+0

mark, yes thats correct, он возвращает все записи org_id и игнорирует часть LIKE. Если я изменил LIKE на = (и удалил знаки%), все это, похоже, работает. Я также вручную ввел имя, которое находится в dbase, то есть AND lname LIKE '% smith%', и это работает. – Deano

+0

** Вы подтвердили, что '$ _POST ['lname']' содержит то, что вы думаете, что он делает? ** –

ответ

-1
  1. Вы не можете непосредственно выполнять код из PDO соединения переменной.
  2. Это bindParam не связывают
  3. Там нет функции "Resultset" в PDO
  4. Для добавления значений с помощью bindParam необходимо нужно обернуть SQL код в PDO подготовить функция.

В целом код должен быть:

$lname = '%'.$_POST['lname'].'%'; 
$sql=$database->prepare("SELECT * FROM cust WHERE org_id = :org_id AND lname LIKE :lname"); 
$sql->bindParam(':lname',$lname,PDO::PARAM_STR); 
$sql->bindParam(':org_id',$_SESSION['org_id'],PDO::PARAM_INT); 
$sql->execute(); 
$existing=$sql->fetch();//Resultset 

, в котором $ база является действительным PDO соединения.

+0

Я все больше думаю, что ваш возраст больше не является оправданием поспешных и бессмысленных ответов. –

+1

Если вы собираетесь изменить только одну незначительную и бессмысленную вещь, но в противном случае просто скопируйте код OP, то, по крайней мере, укажите, ГДЕ вы сделали это незначительное изменение ... –

+0

Извините, я должен был упомянуть, что im, используя этот класс здесь http: //culttt.com/2012/10/01/roll-your-own-pdo-php-class/ Я знаю, что соединения работают, потому что они используют их в числинных местах по сравнению с проектом уже. спасибо за вашу помощь, хотя на этом – Deano

0

Наконец получил эту отсортированные в файле PHP мне нужна эта строка, добавив только перед эхом:

header("Content-Type: application/json", true); 

Спасибо всем за ваши усилия

+0

Другие пользователи получили бы ответ, если бы вы объяснили код и вопрос лучше. – Subin

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