命令与第一个请求不同步


Commands out of sync with first request

如何解决这个问题?以下代码返回:Commands out of sync; you can't run this command now我故意在对象中打开连接,这样我就不需要担心可能未解决的请求。更奇怪的是,调用this的文件在调用this之前对SQL服务器没有任何操作。

我唯一能想到的可能是问题是调用文件是一个ajax调用。

<?php
require_once "includes/config.php";
require_once "includes/security_ajax.php";
class Cost {
    public static function price($id,$priceRule='!!!') {
        // Create connection
        $conn = new mysqli(DB_HOST, DB_USER, DB_PASS, DB_DATA);
        if ($conn->connect_error) die("Connection failed: " . $conn->connect_error);
        //get model info
        $query="SELECT `shop`,`modelVolume`,`buildVolume`,`mass`,`salesRule` FROM `models` WHERE `id`=?";
        $stmt = $conn->stmt_init();
        $stmt->prepare($query);
        $stmt->bind_param('i',$id);
        $stmt->bind_result($shop,$modelVolume,$buildVolume,$mass,$salesRule);
        $stmt->fetch();
        echo $stmt->error;die();

好好睡一觉后找到了答案。$stmt->execute();需要在$stmt->fetch();之前执行,甚至没有寻找这个,因为通常当我看到这个错误时,它是对另一个正在执行的请求而不被关闭。