0

我最近一直在从事一项 uni 任务,并且在让我的代码正常工作时遇到了很多麻烦。

当我将 .php 文件上传到服务器然后尝试查看它们时似乎发生的错误如下:

  1. 警告:oci_parse() 期望参数 1 是资源,在第 227 行的 /home/contactusphp.php 中给出的字符串
  2. 警告:ociexecute() 期望参数 1 为资源,在 /home/contactusphp.php 第 232 行给出 null 您的消息已成功发送!

其他详细信息:这是用于 Oracle 数据库,最初的目的是让用户使用联系表单向站点所有者发送消息(将消息放入数据库)。

我的代码如下:

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. ?>

我似乎无法找到可能出现的问题,而且我对 Web 开发也不是很有经验。

编辑:我去掉了引号,并将 OCI_Logon/OCI_Parse/OCI_Execute 更改为 OCILogon 等。但是,当我这样做时,问题发生了变化。

有一个新的错误代码,如下:

警告:ociexecute() [function.ociexecute]:ORA-00904:“EMAILCONTACT”:第 232 行 /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. ?>

编辑:问题最终自行解决,我不知道如何解决。

4

1 回答 1

1

为什么要在这个函数周围加上引号?

$connect = 'OCI_Logon($dbuser, $dbpass, $db)';
于 2013-10-09T15:41:34.380 回答