oci_parse()期望参数1为resource / ociexecute()[function.ociexecute]:ORA-00904

时间:2013-10-09 15:39:45

标签: php parsing oci

我最近一直致力于单一任务,并且在使代码工作方面遇到了很多麻烦。

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

  1. 警告:oci_parse()期望参数1为资源,第227行/home/contactusphp.php中给出的字符串
  2. 警告:ociexecute()要求参数1为资源,在第232行的/home/contactusphp.php中给出null 您的消息已成功发送!
  3. 其他细节: 这适用于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. ?>
    

    我似乎无法找到可能出错的地方,而且我对网络开发也不是很有经验。

    编辑:我删除了引号,并将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. ?>
    

    编辑: 问题最终得到了解决,我不知道如何。

1 个答案:

答案 0 :(得分:1)

为什么围绕此功能引用?

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