2013-12-15 141 views
-3

沿信息向前發送信息。我在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; 
     } 

所以這個問題是這樣的,揹着它到數據庫時,然後是錯誤。

+4

谷歌翻譯是不夠的 '技術' 問題 – 2013-12-15 23:09:35

+0

爲什麼不搜索你有錯誤信息? –

+1

我剛剛讀過達福克嗎? – Jonast92

回答

0

不幸的是你的問題豈不完全可以理解的,所以我只是去給相關的您會收到錯誤的一些基本信息(如我想這是你想解決一下):

error 1: Commands out of sync; you can't run this command now

由於Mysqli默認使用未緩衝的查詢語句,而Mysqli先前的結果將被提取,因此您無法調用其他過程。
要解決此問題並避免出現錯誤,請使用mysqli_store_result()先獲取所有行,然後執行下一個查詢。

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

Transfers the result set from the last query on the database connection represented by the link parameter to be used with the mysqli_data_seek() function.

等詳細信息的 「命令出不同步」:
http://dev.mysql.com/doc/refman/5.1/en/commands-out-of-sync.html

+0

感謝您的幫助,現在爲我工作:) – user3105556