2015-07-31 4 views
1

Я пытаюсь сделать SELECT из базы данных PHP в Oracle.ORA-01036 с oci_bind_by_name

Вот код я сделал:

$sql = "SELECT * FROM 
     DEV_F.FO_INPUT i, 
     DEV_F.FO_MAIN m 
     WHERE m.FOM_ID = i.FIN_FATHER 
     AND m.FOM_ID = :traceID"; 

    $stid = oci_parse($this->connexion(), $sql); 


    oci_bind_by_name($stid, 'traceID', $this->escapeString($traceID)); 

    oci_execute($stid); 
    oci_fetch_all($stid, $res); 

Запрос ОК в SQLDevelopper, не возвращает ошибку,. Но PHP возвращает:

функции oci_bind_by_name(): ORA-01036: недопустимое имя переменного/номер

Я пытался добавить одиночные кавычки, чтобы добавить точку с запятой и т.д. ... Ничего не работает, я довольно палка здесь ,

Любые советы? Я что-то пропустил ?

+3

думаю, что должно быть ':' перед именем переменной: 'функцией oci_bind_by_name ($ STID, ': traceID', $ this-> escapeString ($ traceID));' – Jens

+1

Может быть, вы можете попробовать без вызова escapeString ? – user2672165

ответ

0

Вам нужно сделать это так, сначала используйте двоеточие, но также вам не нужно избегать значения, потому что привязка обработает это для вас.

oci_bind_by_name($stid, ':traceID', $traceID); 
Смежные вопросы