#php #oracle #oracle-call-interface
#php #Oracle #oracle-call-interface
Вопрос:
Я хочу привязать переменные в запросе, подобном этому:
SELECT people.name, conf.id
FROM people, conf
WHERE people.confid=conf.id AND people.name LIKE :c1 AND conf.name LIKE :c2
Привязка (я пытаюсь использовать очень простое выражение):
$tmp = '%';
$tmp2= '%';
oci_bind_by_name($statement, ':c1', $tmp);
oci_bind_by_name($statement, ':c2', $tmp2);
Предупреждение: oci_execute() [function.oci-execute]: ORA-01008: не все переменные привязаны в ….php в строке 162
Если я сгенерирую запрос «на лету» с помощью: {$tmp} вместо:c1, это сработает.
Есть идеи?
Спасибо!
Комментарии:
1. Откуда
$statement
берется?2. ‘$statement = oci_parse($connection, $query);’ где query — это запрос, приведенный выше.
3. Я предлагаю вам отредактировать вопрос и заменить ваши комментарии о том, как выглядит код (в котором я не вижу ничего неправильного), на реальный код. Извините, что не был более полезным.
4. Я решил проблему: я не вызывал
oci_free_statement()
метод. Это немного странно, потому что на моей другой странице в том же соединении с базой данных привязка работала нормально, без вызова бесплатного метода…
Ответ №1:
Я решил проблему:
Я не вызывал метод oci_free_statement(). Это немного странно, потому что на моей другой странице в том же соединении с базой данных привязка работала нормально, без вызова бесплатного метода…