[英]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驅動程序不允許這樣做。 您必須分別准備/執行INSERT
和SELECT
查詢。
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.