我在MySQL数据库中有一个名为MyGuests
的表,它有4个字段:id(PK和自动增量),名称,年龄和电子邮件。我使用以下代码将数据从用户输入表单插入数据库:
<?php
$sql = mysqli('localhost','user','password','database');
$name = $_POST['name'];
$age = $_POST['age'];
$email = $_POST['email'];
$query = $sql->prepare("INSERT INTO MyGuests ( id, name, age, email) VALUES (?, ?, ?, ?)");
$query->bind_param("isis",$name,$age,$email);
$query->execute();
?>
现在我很困惑如何使用Prepared语句为id
插入自动递增字段的值!如您所见,我为(?, ?, ?, ?)
传递了4个参数用于数据输入,并将"isis"
用于bind_param();但不确定$name,$age,$email
必须放入什么内容?
你能帮我解决这个问题吗?
由于
答案 0 :(得分:3)
只需省略查询中的id
,即
INSERT INTO MyGuests ( name, age, email) VALUES (?, ?, ?)
它会自动添加递增的id,因此名称为:)
答案 1 :(得分:0)
另一种选择是向自动增量列提供空值:
即。
代替
$query = $sql->prepare("INSERT INTO MyGuests ( id, name, age, email) VALUES (?, ?, ?, ?)");
使用
$query = $sql->prepare("INSERT INTO MyGuests ( id, name, age, email) VALUES (null, ?, ?, ?)");