2015-02-11 42 views
5

01745: rollowing kodu çalıştırılırken geçersiz host/bind değişken adı uyarısı. Bunun neden olduğunu bilmiyorum, lütfen yardım edin! Bağlamımda yanlış bir şey olması gerektiğini hissediyorum ama bunun nesi yanlış olduğunu göremiyorum. $ Start ve $ End değişkenlerim DD-MM-YY gibi görünüyor. Aşağıdaki PHP kodunu listeledim. Teşekkür ederim!PHP ORA-01745: geçersiz ana makine/değişken değişken adı Uyarı

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>";  
} 
?> 

Hata:

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

cevap

13

sorun Oracle kelimeleri (yani Bence ": end" suçlu) rezerve kullanarak edilir bir bağlayıcı değişken adı için hangi Müsade edilmez.

": finiş" veya benzeri bir şekilde değiştirmeyi deneyin ve işe yaramalısınız.

+0

Hey değiştirdiğim tekrar için teşekkür ederim: bitti: bitti ve hala aynı hatayı alıyorum! – vector

+0

Başlamayı da değiştirmem gerekiyordu. Ama bu işe yaradı! Teşekkürler. – vector