gpt4 book ai didi

PHP 命令不同步错误

转载 作者:IT老高 更新时间:2023-10-28 23:45:16 26 4
gpt4 key购买 nike

我在 PHP/MySQLi 中使用两个准备好的语句从 mysql 数据库中检索数据。但是,当我运行语句时,出现“命令不同步,您现在无法运行命令”错误。

这是我的代码:

    $stmt = $mysqli->prepare("SELECT id, username, password, firstname, lastname, salt FROM members WHERE email = ? LIMIT 1";
$stmt->bind_param('s', $loweredEmail);
$stmt->execute();
$stmt->store_result();
$stmt->bind_result($user_id, $username, $db_password, $firstname, $lastname, $salt);
$stmt->fetch();

$stmt->free_result();
$stmt->close();

while($mysqli->more_results()){
$mysqli->next_result();
}

$stmt1 = $mysqli->prepare("SELECT privileges FROM delegations WHERE id = ? LIMIT 1");
//This is where the error is generated
$stmt1->bind_param('s', $user_id);
$stmt1->execute();
$stmt1->store_result();
$stmt1->bind_result($privileges);
$stmt1->fetch();

我尝试过的:

  • 将准备好的语句移动到两个单独的对象中。
  • 使用代码:

    while($mysqli->more_results()){
    $mysqli->next_result();
    }
    //To make sure that no stray result data is left in buffer between the first
    //and second statements
  • 使用 free_result() 和 mysqli_stmt->close()

PS:“Out of Sync”错误来自第二条语句的“$stmt1->error”

最佳答案

在 mysqli::query 中,如果你使用 MYSQLI_USE_RESULT,所有后续调用都会返回错误 命令不同步,除非你调用 mysqli_free_result()

调用多个存储过程时,您可能会遇到以下错误:“命令不同步;您现在无法运行此命令”。即使在调用之间对结果对象使用 close() 函数时,也会发生这种情况。要解决此问题,请记住在每次存储过程调用后对 mysqli 对象调用 next_result() 函数。请参见下面的示例:

<?php
// New Connection
$db = new mysqli('localhost','user','pass','database');

// Check for errors
if(mysqli_connect_errno()){
echo mysqli_connect_error();
}

// 1st Query
$result = $db->query("call getUsers()");
if($result){
// Cycle through results
while ($row = $result->fetch_object()){
$user_arr[] = $row;
}
// Free result set
$result->close();
$db->next_result();
}

// 2nd Query
$result = $db->query("call getGroups()");
if($result){
// Cycle through results
while ($row = $result->fetch_object()){
$group_arr[] = $row;
}
// Free result set
$result->close();
$db->next_result();
}
else echo($db->error);

// Close connection
$db->close();
?>

我希望这会有所帮助

关于PHP 命令不同步错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14554517/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com