CI下調用MYSQL預存程序,串連必須釋放才能再次執行其他查詢,但是我這裡釋放串連後出錯了,代碼如下:
//擷取節點資訊
//執行預存程序
$query = $this->db->query("call ws_node_one($id)");
$data['node'] = $query->result_array()[0];
$this->db->close();//關閉串連
$this->load->database();//可有可無,CI下調用$this->db時自動連接
//下面的是新查詢
$result = $this->db->get_where("ws_node",array("id"=>$pid));//就是這句查詢報錯了
#######################################
錯誤如下:
A PHP Error was encountered
Severity: 8192
Message: mysql_escape_string(): This function is deprecated; use mysql_real_escape_string() instead.
Filename: mysqli/mysqli_driver.php
Line Number: 320
#############################################
後面的查詢是有結果的,但是這個mysql_escape_string()的字元轉義函數調用失敗了,不知道為什麼,根據要求去 mysqli/mysqli_driver.php裡把mysql_escape_string改成mysql_real_escape_string,也是一樣,報mysql_real_escape_string錯誤。
##############################################
大神求解!!!
CI小白
回複討論(解決方案)
mysql 擴充必須在執行預存程序之後斷開資料庫連接,重新串連後才可以
所以 mysql 是落後的,要被淘汰的
你可改用 mysqli 或 PDO 擴充
改了後報mysql_real_escape_string錯誤。那報什麼錯誤呢
不是這樣查詢的,拼湊SQL也有問題。
mysql 擴充必須在執行預存程序之後斷開資料庫連接,重新串連後才可以
所以 mysql 是落後的,要被淘汰的
你可改用 mysqli 或 PDO 擴充
我這個用mysqli驅動的,而且我已經$this->db->close();關閉串連了,重新開啟就會報那個錯,但是查詢是有結果的
改了後報mysql_real_escape_string錯誤。那報什麼錯誤呢
改了mysql_real_escape_string()之後,報:
A PHP Error was encountered
Severity: 8192
Message: mysql_real_escape_string(): This function is deprecated; use mysql_escape_string() instead.
Filename: mysqli/mysqli_driver.php
Line Number: 320
不是這樣查詢的,拼湊SQL也有問題。
請問,什麼叫不是這樣查詢?不是這樣查怎麼查?
你的php版本是多少?
你的php版本是多少?
5.5
自5.5.0起mysql 擴充函數廢棄了,用mysqli 和 pdo代替吧。
自5.5.0起mysql 擴充函數廢棄了,用mysqli 和 pdo代替吧。
我在上面已經說過了,我的mysql驅動設定是mysqli,也就是說,所有查詢函數都是用musqli的,你好像還沒清楚問題啊。。。
CSDN什麼渣渣論壇,一點人氣都沒有,完全沒有能解答問題的技術人員,什麼版主的都是半斤八兩吧,唉。。。以後都不來這發文章了