oci_bind_by_name(): ORA-01036

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

oci_bind_by_name(): ORA-01036: illegal variable name/number

Часть PHP-скрипта.

    $connection = oci_connect(getenv('DB_USERNAME'), getenv('DB_PASSWORD'), getenv('DB_HOST'), 'AL32UTF8');
    $sql = oci_parse($connection, "SELECT * FROM TG_EVENT WHERE
    result = 0
    AND regnum IS NOT NULL
    AND customer_id ='1872680'
    AND status_now IN (568, 569, 570)
    AND status_now != status_was");
    oci_execute($sql);
    
    $res = oci_fetch_all($sql, $rows, null, 1000, OCI_FETCHSTATEMENT_BY_ROW);
$update = oci_parse($connection, "UPDATE TG_EVENT SET result = '1'  WHERE customer_id = :customer_id");
oci_bind_by_name($update, ':cutomer_id', $result['CUSTOMER_ID']);
oci_bind_by_name($update, ':regnum', $result['REGNUM']);
oci_bind_by_name($update, ':status_now', $result['STATUS_NOW']);
oci_execute($update);

person user3110122    schedule 24.08.2020    source источник


Ответы (1)


В вашем коде несколько ошибок

1- oci_bind_by_name($update, ':cutomer_id', $result['CUSTOMER_ID']); должно быть

oci_bind_by_name($update, ':customer_id', $result['CUSTOMER_ID']);

то есть вы написали :cutomer_id вместо :customer_id

2- Переменные связывания :regnum и :status_now отсутствуют в вашем запросе, поэтому удалите их или измените запрос, чтобы добавить эти переменные связывания.

person Massimo Petrus    schedule 24.08.2020