Подготовленный PHP запрос postgres завершается с ошибкой: «не удалось определить тип данных параметра $ 1» - PullRequest
0 голосов
/ 28 октября 2010

В настоящее время мне нужно реализовать запрос к базе данных postgres, используя подготовленный оператор.Мой текущий код выглядит так:

 $arrFilter = array("", "");
 $result = $db->prepare("select_music", "SELECT * FROM tblmusik WHERE lm_titel LIKE '%" . "$1" . "%' AND lm_text LIKE '%" . "$2" . "%');

(db-> prepare () просто выполняет pg_prepare ())

Затем я выполняю этот запрос:

 if (isset($data['lm_titel'])) {
   $arrFilter[0] = $data['lm_titel'];
 } 
 if (isset($data['lm_text'])) {
   $arrFilter[1] = $data['lm_text'];
 }
 $result = $db->execute("select_music", $arrFilter);

Но я получаю следующую ошибку:

Предупреждение: pg_prepare (): Запрос не выполнен: ОШИБКА: не удалось определить тип данных параметра $ 1 в /home/freevma/htdocs/freeVMA/global/cls/db.php влиния 110

Я был бы рад запустить это и буду признателен за вашу помощь!

брат

1 Ответ

4 голосов
/ 29 октября 2010

Попробуйте $arrFilter[0] = '%' . $data['lm_titel'] . '%';

Базы данных не позволяют объединять параметры таким образом (если вы не используете оператор конкатенации БД).'%'||$1||'%' тоже должно быть законным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...