使用PHP使用空值插入数据
这是订单ID,Bill may b null,客户不需要填写表单,,,,这是php代码,,,,,它不工作…..我不知道如何使用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_
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插入到表中