PHP から MySQL テーブルに行を挿入し、挿入直後にクエリを実行して、挿入されたばかりの行のキー値を次のように取得しています。
$stmt = $this->db->prepare("INSERT INTO user(vFirstName, vLastName, vEmail, vPassword, iSkilllevelid, vTournaments, vDays, dAddedDate, eStatus) VALUES (?,?,?,?,4,'Pick-Up','Saturday',NOW(),'Active')");
$stmt->bind_param("ssss", $firstName, $lastName, $email, $pwd);
$stmt->execute();
$stmt->close();
$stmt = $this->db->prepare('SELECT iUserId FROM user WHERE vEmail=?');
$stmt->bind_param("s", $email);
$stmt->execute();
$stmt->bind_result($iUserId);
while ($stmt->fetch()) {
break;
}
このコードの実行後$iUserId
、正しい自動インクリメント キー値 (たとえば 1143) がありますが、実際にデータベース テーブルを見ると、そのキー (1143) を持つ行は存在しません。そんなことがあるものか??