簡體   English   中英

mysql pdo中的一般錯誤

[英]General error in mysql pdo

我正在嘗試通過使用SELECT LAST_INSERT_ID()獲取主鍵,但出現錯誤SQLSTATE[HY000]: General error

  function logCallDetails($db,$student_id,$currentStory,$currentCall){
        try{
        $query= "INSERT INTO `call`(`student_id`, `story_id`, `call_number`) VALUES ('$student_id','$currentStory','$currentCall');SELECT LAST_INSERT_ID();";
        echo $query;
        $result=$db->prepare($query);
        $result->execute();
        $result = $result->fetchall(PDO::FETCH_ASSOC);


        #$result->closeCursor();
        return $result;
        }
        catch(PDOException $e) {
            echo $e->getMessage();  
        }
}

initialize.php

$get_call_id=logCallDetails($db,$student_id,$call_number,$story_id);
            foreach($get_call_id as $row=>$s)
            {
                foreach($s as $k=>$v)
                {
                    echo $k.'->'.$v.'<br/>';
                }
            }

在一個查詢調用中,您有2個獨立的查詢。 出於安全原因,底層MySQL驅動程序不允許這樣做。 您必須分別准備/執行INSERTSELECT查詢。

function logCallDetails($db,$student_id,$currentStory,$currentCall){
    $query= "INSERT INTO `call`(`student_id`, `story_id`, `call_number`) 
             VALUES (?,?,?)";
    $result=$db->prepare($query);
    $result->execute(array_slice(func_get_args()));
    return $db->lastInsertId();
}

$get_call_id = logCallDetails($db,$student_id,$call_number,$story_id);
echo $get_call_id;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM