【问题标题】:Warning: oci_execute(): ORA-01400: cannot insert NULL value警告:oci_execute(): ORA-01400: 无法插入 NULL 值
【发布时间】:2016-06-21 02:16:12
【问题描述】:

我是 php 和 oracle 的新手,我正在尝试将表单中的数据插入数据库,但出现以下错误。

警告:oci_execute(): ORA-01400: cannot insert NULL into ("OE"."CUSTOMERS"."CUST_LAST_NAME") in C:\wamp\www\PhpProject1\newentries.php on line 39

帮助我了解如何将数据插入数据库。 代码是:

<?php

require_once('./dbinfo.inc.php');

session_start();


echo <<<EOD
  <body style="font-family: Arial, sans-serif;">

  <form action="newentries.php" method="POST">

    <p>First Name: <input type="text" name="firstname"></p>

   <p>Last Name:<input type="text" name="lastname"</p>

    <p>CustomerId: <input type = "text" name = "cust_id"></p>

    <p>Email ID: <input type = "text" name = "cust_email"></p>

    <input type="submit" value="Submit">
  </form>

  </body>

EOD;

if(!empty($_POST['firstname']) && !empty($_POST['lastname']) && !empty($_POST['cust_id']) && !empty($_POST['cust_email']))
{
    $c = oci_pconnect(ORA_CON_UN, ORA_CON_PW, ORA_CON_DB);

    $fname = $_POST['firstname'];

    $lname = $_POST['lastname'];

$id = $_POST['cust_id'];

    $email = $_POST['cust_email'];

    $stid = oci_parse($c, "INSERT INTO CUSTOMERS(CUSTOMER_ID,CUST_FIRST_NAME,CUST_LAST_NAME,CUST_EMAIL) VALUES(:id_bv,:fname_bv,:lname_bv,:email_bv)");

    oci_bind_by_name($stid, ':fname_bv', $fname);

  oci_bind_by_name($stid, ':lname_bv', $lname);

    oci_bind_by_name($stid, ':id_bv', $id);

    oci_bind_by_name($stid, ':email_bv', $email);

    oci_execute($stid);
}   
else
{
    echo 'error';
}

table in which I want to enter the data

【问题讨论】:

  • 您正在将空值插入其中一个列:主键、名字、姓氏。可能是主键,您是否设置了触发器来插入它?
  • 没有为插入设置触发器。

标签: php oracle


【解决方案1】:

您的代码中有一个简单的错字:

$flname = $_POST['lastname'];
...
oci_bind_by_name($stid, ':lname_bv', $lname);

【讨论】:

  • @vaibhav 这还不足以让我提供帮助。而且您现在已经编辑了您的问题以删除错字,但说错误已修复。所以现在你的问题是错误的......
  • @vaibhav 查看oci_execute的返回值;它应该是true 表示该语句有效。如果不是,请致电oci_error($c) 找出问题所在。
  • 该错误意味着记录已经存在。尝试插入不同的值。一个简单的互联网搜索就会告诉你这一点。这是我在这里帮助您解决的第三个明显问题,所以不是支持论坛。我建议你找一个教程或参加关于 Web 应用程序开发的课程。
猜你喜欢
  • 2018-11-08
  • 1970-01-01
  • 2011-08-23
  • 2017-09-01
  • 2013-02-21
  • 2016-08-21
  • 2015-06-04
  • 1970-01-01
  • 2011-07-16
相关资源
最近更新 更多