최근 uni 과제를 수행하여 코드를 작동시키는 데 많은 어려움을 겪었습니다.oci_parse()는 매개 변수 1이 resource/ociexecute()가 될 것으로 기대합니다. [function.ociexecute] : ORA-00904
- 경고 : 나는 다음은 서버에 내 .PHP 파일을 업로드 한 다음를 보려고하면 보이지
오류가 발생하는 oci_parse (매개 변수 1은 자원이 될 것으로 예상), 문자열은 주어진 in/home/contactusphp.php on line 227
- 경고 : 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)
새로운 코드입니다.
우리는 수업에서 기본적으로 무엇을 배웠습니다. – Wos
코드 스쿨 변경을 고려하십시오 –
실행될 함수를 호출하는 명령문을 따옴표로 묶지 마십시오. 따옴표는 문자열을 나타냅니다. –