oracle — PHP ORA-01745: неверное имя переменной хоста / связывания Предупреждение

01745: недопустимое предупреждение имени переменной хоста / привязки при запуске кода накачки. Я не уверен, почему это происходит, пожалуйста, помогите! Я чувствую, что с моим связыванием что-то не так, но я не вижу, что в этом плохого. Мои переменные $ Start и $ End выглядят как DD-MM-YY. Я перечислил код PHP ниже. Спасибо!

PHP:

<?php
$year_Echo = '2013';
$yearTruncation =  substr($year_Echo, 2);
$yearTruncationMinusOne = $yearTruncation-1;
$Start = ('1-OCT-'.$yearTruncationMinusOne);
$End = ('30-SEP-'.$yearTruncation);
echo "Start = ".$Start." End = ".$End." Year Truncation Minus One = ".$yearTruncationMinusOne."<br>";

/*** connect or WFO DB ***/
$db = oci_connect('query','pw','server:1521/view');
if (!$db){
$e = oci_error();
trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}
$query = "SELECT * FROM db.cooldb WHERE (STATUS = 'ACTIVE' OR STATUS = 'CLOSED') AND NUMBER <> ' '
AND AMENDMENT_DATE_CREATED
BETWEEN :start AND :end
ORDER BY AMENDMENT_DATE_CREATED DESC";

$runQuery = oci_parse($db, $query);
oci_bind_by_name($runQuery, ":start", $Start);
oci_bind_by_name($runQuery, ":end", $End);
oci_execute($runQuery);

while($row = oci_fetch_array($runQuery, OCI_ASSOC+OCI_RETURN_NULLS))
{
echo $row['AMENDMENT_DATE_CREATED']." ".$row['TITLE']."<br>";
}
?>

Ошибка:

Warning:
oci_execute() [function.oci-execute]: ORA-01745: invalid host/bind variable name

6

Решение

Проблема в том, что вы используете зарезервированные слова оракула (а именно: «end» является виновником) для имени переменной привязки, что недопустимо.

Попробуйте изменить его на «: finish» или аналогичный, и он должен работать.

15

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]