命令与第一个请求不同步

时间:2015-10-21 11:39:50

标签: php mysqli

我该如何解决这个问题?以下代码返回:Commands out of sync; you can't run this command now 我故意在对象中打开连接,所以我不需要担心可能未解决的请求。并且在调用它之前,调用它的文件对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();

1 个答案:

答案 0 :(得分:0)

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