Heim  >  Artikel  >  Backend-Entwicklung  >  CI框架下用存储过程后不能再进行其他查询

CI框架下用存储过程后不能再进行其他查询

WBOY
WBOYOriginal
2016-06-23 13:48:041245Durchsuche

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

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn