-1
有谁知道为什么我得到的返回值为0,此代码:PHP MySQL的lastInsertID
/* check connection */
if (mysqli_connect_errno()) {
error_log("Connect failed: " . mysqli_connect_error());
echo '{"success":0,"error_message":"' . mysqli_connect_error() . '"}';
} else {
$stmt = $mysqli->prepare("INSERT INTO teams (name, token) VALUES (?, ?)");
$stmt->bind_param('ss', $team, $token);
/* execute prepared statement */
$stmt->execute();
if ($stmt->error) {error_log("Error: " . $stmt->error); }
$success = $stmt->affected_rows;
//Get the last insert ID of the insert Team
$lastInsertID = $stmt->insert_id;
//Insert into the Mapping Table
$stmt = $mysqli->prepare("INSERT INTO usersTeamsMap (users_idUser, teams_idTeam) VALUES (?, ?)");
$stmt->bind_param('ii', $userID , $lastInsertID);
/* execute prepared statement */
$stmt->execute();
//Get the last insert ID of the insert Team
$lastInsertID = $stmt->insert_id;
echo "ID: " . $lastInsertID;
最后的回声总是返回0。第一个 “$ lastInsertID = $ stmt-> INSERT_ID;”第一次插入查询的工作正常。
在此先感谢。
编辑:
感谢您的所有答案。现在我知道为什么服务没有工作。我的映射表没有AutoIncrement字段。
什么是第一个也是最后一个?是宇跑循环?代码的那一部分在哪里 – 2015-03-08 18:47:37
在第一个之后并且在你准备第二个之前尝试'$ stmt-> close();'。 – 2015-03-08 18:52:13