我需要使用以下insert语句,主键字段是自动增量。我需要在插入后返回新的主键值。最好使用一个语句来执行插入和返回主键值。
$query = $database->connection->prepare("INSERT INTO accounts (created, priviledge, password, token, idle) VALUE ('$created', '1', :password, '$token_encrypt', '$idle')");
$query->bindParam(":password", $password_hash);
$query->execute();
答案 0 :(得分:2)
一旦您使用PDO,您需要使用
$database->connection->lastInsertId()
它保证您从当前会话返回值。所以从评论中回答你的问题 - 你不可能从并发会话中得到错误的值。
答案 1 :(得分:0)
使用mysql_insert_id();
获取上次查询中生成的ID。
它检索前一个查询(通常是INSERT)为AUTO_INCREMENT列生成的ID。
答案 2 :(得分:0)
假设您的主要字段名称为id,然后尝试此代码
SELECT max(id) FROM tableName
或试试这个
LAST_INSERT_ID();