Oracle + php + кавычки

Pinko

Новичок
Oracle + php + кавычки

как правильно экранировать кавычки и другие нежелательные символы для запросов в oracle из php? есть ли аналог mysql_real_escape_string()?
 

флоппик

promotor fidei
Команда форума
Партнер клуба
и oci_* версия и pdo_oci поддерживает плейсхолдеры. Экранировать ничего не надо при их использовании.
 

Pinko

Новичок
использую oci8... как юзать плейсхолдеры? Я так понимаю на стадии подготовки - oci_parse(), в мане про плейсхолдеры ни слова...
 

Pinko

Новичок
или нужно ставить метки и потом с помощью oci_bind_by_name() создавать связи между метками и переменными?

-~{}~ 08.12.08 18:26:

угу, сенк) опередил почуть)

-~{}~ 09.12.08 10:16:

флоппик
появляется ворнинг
Warning: oci_execute() [function.oci-execute]: ORA-01008: not all variables bound in

если переменные байдим через цикл...


Сам запрос:
SELECT * FROM (SELECT * FROM my_table WHERE field=:field ORDER BY id) WHERE rownum <= 25

Вставка значений происходит так:

foreach ( $args[1] as $key => $value ) {
oci_bind_by_name($this->query, ":".$key, $value);
}


где args[1] конкретно в этом случае представлено так:
array(1) {
["field"]=> string(27) "Значение"
}


значения подставляются и запрос выполняется, но почему ворнинг то?
 

Falc

Новичок
Данная ошибка сообщает о том что кол-во параметров в запросе не соответствует ко-ву забинденых параметров.
Поэтому я бы рекомендовал для начала избавиться от циклов и прочей мишуры:

oci_parse...
oci_bind_by_name...
oci_execute..

А потом уже смотреть где же в цикле я ошибся.
 
Сверху