2012-03-22 81 views
0

在CodeIgniter中執行例程時遇到問題。CodeIgniter - 無法使用幾條UPDATE語句執行過程

我有一個例程,只是用參數中指定的數據更新幾個mysql表。

本來我收到:

錯誤號時間:2014年 命令不同步;你不能運行這個命令現在

嘗試過的方案規定,在http://codeigniter.com/forums/viewthread/96583/

$this->mydb->Query($sql); 

與改變司機的mysqli

它正常工作與SELECT語句對我來說,但如果例程有隻有幾個更新 - 它不起作用。

問題是沒有返回錯誤消息。它的行爲就像它已成功運行,但表不會更新。

注意:程序本身不應該有問題,因爲如果我打印有問題的查詢並嘗試在MySQL Workbench中執行此操作 - 表格已正確更新。

任何建議表示讚賞。

+0

只是一個雖然:你確定你更新的價值不是已經得到的?如果是這種情況,它將返回true,但不會進行更改。 http://php.net/manual/en/function.mysql-affected-rows.php給了什麼? – 2012-03-22 09:14:53

+0

請忽略這個問題;我剛剛解決了這個問題 - 看起來這個問題是由於在這個例程之前我用$ this-> db-> query調用了另一個例程而出現的。需要更新整個項目才能使用$ this-> mydb-> Query only。 謝謝 – AlexG 2012-03-22 09:22:17

+0

羅賓,我肯定有關這個,因爲如果我print_r這個複製/粘貼到工作臺並執行 - 數據更新:) – AlexG 2012-03-22 09:23:56

回答

1

$這個 - > mydb->查詢在整個項目中使用的每個查詢已經解決了這個問題

2

嘗試更改配置文件中的dbdriver到mysqli

$db['default']['dbdriver'] = "mysqli";

+0

謝謝你的建議;不幸的是現在無法驗證,因爲我不再使用CodeIgniter。 – AlexG 2012-12-09 17:07:07

0
function call($procedure) 
{ 
    $result = @$this->db->conn_id->query($procedure); 

    while ($this->db->conn_id->next_result()) 
    { 
     //free each result. 
     $not_used_result = $this->db->conn_id->use_result(); 

     if ($not_used_result instanceof mysqli_result) 
     { 
      $not_used_result->free(); 
     } 
    } 

    return $result; 

}