Mysql - 获取上次插入的ID不起作用

时间:2017-09-03 20:56:10

标签: php mysql


我不知道为什么这不起作用。 LAST_INSERT_ID()没有被捕获,有人可以帮我吗?

$query = " 
            INSERT INTO products_categories ( 
                name,
                url
            ) VALUES ( 
                :name,
                :url
            ) SELECT LAST_INSERT_ID();
        "; 
        $query_params = array( 
            ':name' => $_POST['name'], 
            ':url' => $_POST['url']
        ); 
        try{ 
            $stmt = $db->prepare($query); 
            $result = $stmt->execute($query_params); 
        } 
        catch(PDOException $ex){
            echo 0;
            return true;
        }
        $result = $stmt->fetch(PDO::FETCH_ASSOC);
        $id_category = $result["id"];

2 个答案:

答案 0 :(得分:1)

试试这个;

<?php
$query = " 
            INSERT INTO products_categories ( 
                name,
                url
            ) VALUES ( 
                :name,
                :url
            )
        "; 
        $query_params = array( 
            ':name' => $_POST['name'], 
            ':url' => $_POST['url']
        ); 
        try{ 
            $stmt = $db->prepare($query); 
            $result = $stmt->execute($query_params); 
        } 
        catch(PDOException $ex){
            echo 0;
            return true;
        }
        $result = $stmt->fetch(PDO::FETCH_ASSOC);
        //$id_category = $result["id"];
        $id_category = $db->lastInsertId();

希望有所帮助

答案 1 :(得分:1)

“您可以从查询中删除SELECT LAST_INSERT_ID()部分,并使用$ db-&gt; lastInsertId();而是。” - @barell