1

我有一个 PHP 页面,其中显示了一个 HTML 表单,一旦准备好提交表单,我想使用页面的 PHP 部分将其上传到 Oracle 数据库中,我在下面提供了该部分。

但是,我不确定我做错了什么,我检查了数据库并且没有加载任何数据,但我也没有在屏幕上看到任何错误。

任何人都可以通过向我展示如何使用 PHP 将 HTML 表单数据正确上传到 Oracle DB 来帮助我吗?

有人能指出什么会导致我的代码无法工作吗?

谢谢你。

<?php
require_once ("xmlrpc.inc");
require_once ("globals.php");
class form
{
    public static function run()
    {
      ini_set('display_errors', 'On');
      error_reporting(E_ALL | E_STRICT);

      $conn = oci_connect("username", "password", "path/to");
      if (!$conn) 
      {
        $m = oci_error();
        echo $m['message'], "\n";
        exit;
      }
      else 
      {
        //print "You are connected to the VTC database!<br/>";
      }

      $issueType = $_POST['issueType'];
      $summary = $_POST['summary'];
      $endPointName = $_POST['endPointName'];
      $contactFirstName = $_POST['contactFirstName'];
      $contactLastName = $_POST['contactLastName'];
      $contactEmail = $_POST['contactEmail'];
      $contactPhone = $_POST['contactPhone'];
      $description = $_POST['description'];
      $solution = $_POST['solution'];
      $ticketNumber = $_POST['ticketNumber'];
      $resolved = $_POST['resolved'];
      $agency = $_POST['agency'];

      $insert = 'INSERT INTO VTC_HELPDESK_ISSUES(ISSUE_TYPE,ISSUE_SHORT,ENDPOINT_NAME,CONTACT_FIRST_NAME,CONTACT_LAST_NAME,CONTACT_EMAIL,CONTACT_PHONE,ISSUE_DESC,SOLUTION,OTHER_COMPANY_TICKET_NUM,RESOLVED,AGENCY) '.
             'VALUES(:issueType, :summary, :endPointName, :contactFirstName, :contactLastName, :contactEmail, :contactPhone, :description, :solution, :ticketNumber, :resolved, :agency)';

      $send = oci_parse($conn, $insert);

      //Binding makes it harder to submit anything directly to the Oracle DB
      oci_bind_by_name($send, ':issueType', $issueType);
      oci_bind_by_name($send, ':summary', $summary);
      oci_bind_by_name($send, ':endPointName', $endPointName);
      oci_bind_by_name($send, ':contactFirstName', $contactFirstName);
      oci_bind_by_name($send, ':contactLastName', $contactLastName);
      oci_bind_by_name($send, ':contactEmail', $contactEmail);
      oci_bind_by_name($send, ':contactPhone', $contactPhone);
      oci_bind_by_name($send, ':description', $description);
      oci_bind_by_name($send, ':solution', $solution);
      oci_bind_by_name($send, ':ticketNumber', $ticketNumber);
      oci_bind_by_name($send, ':resolved', $resolved);
      oci_bind_by_name($send, ':agency', $agency);

      oci_execute($send);
    }
}
?>
4

1 回答 1

0

您正在插入表中不允许的值,或者您在表或列名称中输入了拼写错误。就像 Mat 说的那样,如果 oci_execute 失败,则回显 oci_error

if (! oci_execute($send)) {
    var_dump(oci_error()); 
}
于 2013-01-02T13:57:46.797 回答