使用PHP使用空值插入数据

使用PHP使用空值插入数据,php,Php,这是订单ID,Bill may b null,客户不需要填写表单,,,,这是php代码,,,,,它不工作…..我不知道如何使用php将空值的元组插入表中。我找不到错误 create table Orders( Order_ID number(10) primary key, Cust_id number(5), Order_date date, Bill number(5,2), CONSTRAINT fk_cust FOREIGN KEY (Cust_

这是订单ID,Bill may b null,客户不需要填写表单,,,,这是php代码,,,,,它不工作…..我不知道如何使用php将空值的元组插入表中。我找不到错误

create table Orders(
    Order_ID number(10) primary key,
    Cust_id number(5),
    Order_date date,
    Bill number(5,2),
    CONSTRAINT fk_cust  FOREIGN KEY (Cust_ID) REFERENCES Customer(Cust_ID)
    );


CREATE SEQUENCE ord_seq;

CREATE OR REPLACE TRIGGER table_res 
BEFORE INSERT ON Orders 
FOR EACH ROW

BEGIN
  SELECT ord_seq.NEXTVAL INTO   :new.Order_ID FROM   dual;
END;
/
   <?php
        $conn=oci_connect("system","123","localhost/orcl");
        ob_start();
        $current_file=$_SERVER['SCRIPT_NAME'];
        $massage= "";
        if(isset($_POST['Cust_id'])&&
        isset($_POST['Order_date']))           
        {

            $Cust_id= $_POST['Cust_id'];
            $Order_date = $_POST['Order_date'];
            if(!empty($Cust_id)&&!empty($Order_date))
            {

                    $sql = "insert into Orders values('".NULL."','".$Cust_id."','".$Order_date."','".NULL."')";
                    $stid = oci_parse($conn,$sql);
                    $r = @oci_execute($stid);
                    if($r)
                    {
                        echo ' data is inserted...<br>';
                    }
                    else
                    {
                        echo 'data was not inserted...<br>';
                    }

            }
            else
            {
                $massage = "please fill up all the form correctly<br>";
            }
        }

    ?>
    <html>
    <head>
    <title>Create FoodItem Table</title>
    <style>
    body
    {
    background:orange;
    }
    </style>
    <head>
    <body>
    You dont need to fill Order_ID and Bill<br><br>
    <?php echo $massage;?>
    <hr color="green">
    <form action="<?php echo $current_file;?>" method="POST">

        Cust_id:<br> <input type="text" name ="Cust_id" ><br><br>
        Order_date:<br> <input type="text" name="Order_date" ><br><br>

        <input type ="submit" value="Submit Order"><br><br>
        //<a href="EmployeeTableshow.php">Home</a>

    </form>
    </body>
    </html>

像这样插入空值

$sql="insert into Orders values(NULL,'".$Cust_id."','".$Order_date."',NULL)";

在主键上插入空值可能不是您想要的。为密钥插入唯一值:

 $sql = "insert into Orders values('". $someUniqueValueThatYouCreated . "','".$Cust_id."','".$Order_date."','".NULL."')";
-或

例如,使用自动增量更改表结构:

 Order_ID int(10) primary key auto_increment,
然后修改插入:

 $sql = "insert into Orders (Cust_id, Order_date, Bill) values('".$Cust_id."','".$Order_date."','".NULL."')";

当我在本地主机上运行.php时,无论是否插入数据,都没有输出。为什么不在表中检查它呢?这可能是因为您会得到错误$r=@oci_execute$stid或dieoci_error$conni已使用序列自动递增,因为oracle中不允许使用自动递增。使用insert into Orders VALUESNLL,00001,“2014年3月10日”,无效;我可以通过sql plus插入到表中