为什么我无法在我的数据库中插入?这是我的代码
<?php
$name = $_POST['name'];
$email = $_POST['email'];
$bdate = $_POST['bdate'];
$id = $_POST['id'];
if (!empty($name) && !empty($email)){
mysql_query("insert into customer(id,name,email,bdate) values($id,'$name','$email','$bdate')");
}
else {
echo "Please fill <strong>name</strong> and <strong>e-mail</strong> fields!";
}
?>
我的表单是
<form method="post" action="new_customer.php">
ID: <input type="text" name="id" size="5" value="<?php echo $new_id; ?>" disabled="disabled" /><br />
Name: <input type="text" name="name" size="50" /><br />
E-mail: <input type="text" name="email" size="30" /><br />
Birth Date: <input type="text" name="bdate" size="10" /><br /><br />
<input type="submit" value="Save" />
</form>
var $ new_id用这个查询填充
SELECT (Max(id) + 1) as new_id FROM customer
但是当我提交表单时,我得到的错误是:
Notice: Undefined index: id in F:\UniServer\www\admin\customer.php on line 6
然后是一个mysql错误
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ' '')' at line 1
我认为第一个错误导致了secund,对吧?
答案 0 :(得分:2)
因为$_POST
数组中没有禁用的字段
在您的情况下,在数据库中创建id
字段自动增量,并在没有它的情况下进行查询:
mysql_query("INSERT INTO customer(name, email, bdate) values('$name', '$email', '$bdate')");
此外,您的代码需要进行SQL注入 - 在查询之前使用mysql_real_escape_string:
$name = mysql_real_escape_string($_POST['name']);
答案 1 :(得分:0)
删除“disabled =”禁用“”...
这是停止将表单发布到PHP的表单。
答案 2 :(得分:0)
请提供获取记录的mysql代码,因为将表id值赋值给php值时可能会出错。
答案 3 :(得分:0)
而不是disabled="disabled"
您要使用readonly="readonly"
。这可以防止对字段进行编辑,但仍然可以以编程方式读取该值(disabled
不是这种情况)。