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什么渣渣论坛,一点人气都没有,完全没有能解答问题的技术人员,什么版主的都是半斤八两吧,唉。。。以后都不来这发帖子了