lastInsertId删除前导零

时间:2014-08-09 08:01:48

标签: php mysql

此查询返回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上没有发现任何相关信息。

1 个答案:

答案 0 :(得分:0)

那是因为000000019是一个字符串,它被lastInsertId()方法强制转换为整数。这将删除所有前面的0。

您是否正在使用原生mysqli / PDO对象之上的图层,因为它可能正在进行投射,我们可以检查源代码以查看是否是这种情况。