我需要最后插入对象的id。我使用预处理语句来避免SQL注入。但是我不确定如何获取id。
$sql = "INSERT IGNORE INTO faculty (id, term, role, prefix, first_name,
middle_name, last_name, suffix) VALUES (?,?,?,?,?,?,?,?)";
if (!($stmt = $mysqli->prepare($sql)))
echo "Faculty Prepare failed: (" . $mysqli->errno . ") " . $mysqli->error;
$stmt->bind_param('sissssss',
$faculty['id'],
$faculty['term'],
$faculty['role'],
$faculty->name->prefix,
$faculty->name->first,
$faculty->name->middle,
$faculty->name->last,
$faculty->name->suffix
);
if (!$stmt->execute())
echo "Faculty Execute failed: (" . $mysqli->errno . ") " . $mysqli->error;
$result = $stmt->insert_id;
echo "\n Result:" . $result;
$stmt->close();
尽管数据库中有条目,结果始终为0
解决方案 元素已插入数据库。问题出在我创建表时,id不是整数,而是一个表示员工id的varchar类型。为了解决这个问题,我在表中添加了员工ID作为另一列,并使用默认的id int auto_increment primary key,然后问题得到了解决。
INSERT
还是IGNORE
? - Joe