热搜:NVER node 开发 php

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

2024-08-20 16:35:01
CI框架下用存储过程后不能再进行其他查询

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