我在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();
?>
现在我很困惑如何使用 Prepare 语句为自动递增字段id
插入值!如您所见,我传递了 4 个参数作为数据输入的(?, ?, ?, ?)
,并将"isis"
用于 bind_param();但不确定 ID 必须$name,$age,$email
什么?
你能帮我弄清楚吗?
谢谢
只需省略查询中的id
,即
INSERT INTO MyGuests ( name, age, email) VALUES (?, ?, ?)
它将自动添加递增的 id,因此名称为 :)
另一个选项是向自动增量列提供空值:
即。而不是$query = $sql->prepare("INSERT INTO MyGuests ( id, name, age, email) VALUES (?, ?, ?, ?)");
使用$query = $sql->prepare("INSERT INTO MyGuests ( id, name, age, email) VALUES (null, ?, ?, ?)");