此查询返回19作为lastInsertId()而不是000000019.为什么?
try {
$stmt = $conn->prepare("INSERT INTO TABLE(NAME) VALUES
(:name)");
$query_params = array(
':name' => $name
);
$stmt->execute($query_params);
echo $conn->lastInsertId();
$response["success"] = 1;
} catch(PDOException $e) {
echo 'ERROR: ' . $e->getMessage();
$response["success"] = 0;
}
这不是问题,因为当我插入另一个id为19的表时,它插入为000000019.我只想知道前导零在哪里消失。 Haven在Google上没有发现任何相关信息。
答案 0 :(得分:0)
那是因为000000019
是一个字符串,它被lastInsertId()
方法强制转换为整数。这将删除所有前面的0。
您是否正在使用原生mysqli / PDO对象之上的图层,因为它可能正在进行投射,我们可以检查源代码以查看是否是这种情况。