沿着信息向前发送消息

时间:2013-12-15 23:08:48

标签: php mysqli

沿着信息向前发送消息。我在shell中选择的信息或者比裸机更糟糕的信息再次出现在我需要的数据库中..但问题是它出现了这个错误:

错误1:命令不同步;你现在不能运行这个命令

PHP / mysqli的

if($stmt = $this->mysqli->prepare(' SELECT id, idunik, fra, message, datoTime FROM pm WHERE id = ?' ))
        {
            $stmt->bind_param('i', $id);
            $id = $_GET['id'];
            $stmt->execute();
            $stmt->bind_result($id, $idunik, $fra, $message, $datoTime);
            while($stmt->fetch())
            {
                if ($stm = $this->mysqli->prepare('INSERT INTO pm (idunik, title, fra, til, message, datoTime) VALUES (?, ?, ?, ?, ?, NOW())')) { 
                    $stm->bind_param('issss', $idunik, $title, $fra, $til, $message);
                    $idunik = $idunik;
                    $title = $title;
                    $fra = $_SESSION["id"];
                    $til = $fra;
                    $message = $_POST["tekst"];

                    header('Location: /besked/' . $_SESSION["id"] . '/');

                    $stm->execute();


                    $stm->close();
                } else {
                    echo 'error 1: ' . $this->mysqli->error;
                }
            }
            $stmt->close();
        }
        else
        {
            echo 'error 2: ' . $mysqli->error;
        }

所以问题就是当把它带到数据库中时会出现错误。

1 个答案:

答案 0 :(得分:0)

不幸的是你的问题不是完全可以理解的,所以我只是给出一些与你收到的错误相关的一般信息(因为我认为这是你想要解决的问题):

  

错误1:命令不同步;你现在不能运行这个命令

因为默认情况下Mysqli在准备好的语句中使用无缓冲的查询,而Mysqli以前的结果被提取,你不能调用另一个程序。
要解决此问题,并避免出现错误,请使用mysqli_store_result()先获取所有行,然后执行下一个查询。

mysqli_store_result()
http://php.net/manual/en/mysqli.store-result.php

  

从数据库的最后一个查询中传输结果集   由与之配合使用的link参数表示的连接   mysqli_data_seek()函数。

有关“命令不同步”的更多信息:
http://dev.mysql.com/doc/refman/5.1/en/commands-out-of-sync.html