2013-10-09 4 views
0

최근 uni 과제를 수행하여 코드를 작동시키는 데 많은 어려움을 겪었습니다.oci_parse()는 매개 변수 1이 resource/ociexecute()가 될 것으로 기대합니다. [function.ociexecute] : ORA-00904

  1. 경고 : 나는 다음은 서버에 내 .PHP 파일을 업로드 한 다음를 보려고하면 보이지

    오류가 발생하는 oci_parse (매개 변수 1은 자원이 될 것으로 예상), 문자열은 주어진 in/home/contactusphp.php on line 227

  2. 경고 : ociexecute()는 232 행의 /home/contactusphp.php에 주어진 매개 변수 1이 resource, null이 될 것으로 예상합니다. 귀하의 메시지가 성공적으로 전송되었습니다!

추가 세부 정보 : 이 제품은 오라클 데이터베이스에서 사용하며, 원래의 목적은 사이트 소유자 (데이터베이스에 메시지를 넣어)에게 메시지를 보내 문의 양식을 사용하는 사용자이었다. 다음과 같이

내 코드는 다음과 같습니다

211. <? 
212.  // extract form data 
213.  $emailcontact = $_REQUEST['emailcontact'] ; 
214.  $email_address = $_REQUEST['email_address'] ; 
215.   
216.  // Create the SQL statement to add data into the database 
217.  $sql = "INSERT INTO contactus (emailcontact, email_address) VALUES ('$emailcontact', '$email_address')"; 
218.   
219.  // Set the oracle user login and password info 
220.  $dbuser = 'XXXX'; 
221.  $dbpass = 'XXXX'; 
222.  $db = 'SSID'; 
223.  $connect = 'OCI_Logon($dbuser, $dbpass, $db)'; 
224.   
225.   
226.  // Add this data into the database as a new record 
227.  $stmt = OCI_Parse($connect, $sql); 
228.  if(!stmt) { 
229.    echo 'An error occurred in parsing the SQL string./n'; 
230.    exit; 
231.  } 
232.  OCI_Execute($stmt); { 
233.    echo ('Your mesage has been sent successfully!'); 
234. } 
235. ?> 

내가 잘못 될 수있는 것을 찾을 수가 없어, 나는 매우 중 웹 개발 경험이 아니에요.

EDIT : 따옴표를 없애고 OCI_Logon/OCI_Parse/OCI_Execute를 OCILogon 등으로 변경했습니다. 그러나 이렇게했을 때 문제가 변경되었습니다.

다음과 같습니다 새로운 에러 코드,있다 :

경고 : ociexecute() [function.ociexecute] : ORA-00904 : "EMAILCONTACT을"/home/contactusphp.php에 잘못된 식별자

211. <? 
212.  // extract form data 
213.  $emailcontact = $_REQUEST['emailcontact'] ; 
214.  $email_address = $_REQUEST['email_address'] ; 
215.   
216.  // Create the SQL statement to add data into the database 
217.  $sql = "INSERT INTO contactus (emailcontact, email_address) VALUES ('$emailcontact', '$email_address')"; 
218.   
219.  // Set the oracle user login and password info 
220.  $dbuser = 'XXXX'; 
221.  $dbpass = 'XXXX'; 
222.  $db = 'SSID'; 
223.  $connect = OCILogon($dbuser, $dbpass, $db); 
224.   
225.   
226.  // Add this data into the database as a new record 
227.  $stmt = OCIParse($connect, $sql); 
228.  if(!stmt) { 
229.    echo 'An error occurred in parsing the SQL string./n'; 
230.    exit; 
231.  } 
232.  OCIExecute($stmt); { 
233.    echo ('Your mesage has been sent successfully!'); 
234. } 
235. ?> 

편집 : 문제 자체를 해결 결국, 나는 아무 생각이 어떻게 라인 (232)

새로운 코드입니다.

답변

1

왜이 기능을 따옴표로 묶으시겠습니까?

$connect = 'OCI_Logon($dbuser, $dbpass, $db)'; 
+0

우리는 수업에서 기본적으로 무엇을 배웠습니다. – Wos

+2

코드 스쿨 변경을 고려하십시오 –

+0

실행될 함수를 호출하는 명령문을 따옴표로 묶지 마십시오. 따옴표는 문자열을 나타냅니다. –