PHP mysql在调用多个存储过程时出错

标签 php mysql codeigniter

首先介绍一下我的工作环境。我正在使用 Windows 7、CodeIgniter 3.0.2、PHP 5.2.0 和 MySQL 5.5。我在依次调用 2 个不同的程序时遇到困难。从第一个程序开始,我就获得了房间可用性,并基于此我调用了另一个程序。第一个程序运行正常,但在调用第二个程序时,它显示错误为:


命令不同步;您现在无法运行此命令

CALL ConfirmRoom('40331411072018', 5,3, '2018-07-02', '2018-07-04', '27062018I10023',1)

我提到下面的代码:

//1st Procedure
$sql = $this->db->query("CALL CheckAvailbility(GuestHouse,RoomType,'StayDate','StayOutDate',room)");
if($sql->num_rows()>0) {
  $row = $sql->first_row();
  if($row->avail='Y') {
    //2nd Procedure
    $sql = $this->db->query("CALL ConfirmRoom('BookingId', GuestHouse,RoomType, 'StayDate', 'StayOutDate', 'GuestID',noroom)");
    if($sql->num_rows()>0) {
      //statement
    }
  }
}
else {
  //statement
}

最佳答案

我之前遇到过这个问题,这就是我解决它的方法(可能不是最好的解决方案,但它有效):

$this->db->close();
$this->db->initialize();

$test = $this->db->query("CALL sp_testProcedure(0, 1)");

$this->db->close();
$this->db->initialize();

$test2 = $this->db->query("CALL sp_testProcedure2(2, 3)"); 

$this->db->close();
$this->db->initialize();

关于PHP mysql在调用多个存储过程时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51281185/

相关文章:

mysql - promise 自定义方法

css - 如何避免dompdf中的分页符

php - 如何在 Laravel 5 中为选择元素添加占位符

php - pdo连接在php函数中不起作用

php - 每组的最小值和最大值

mysql - 如何在 MySQL 中进行子分组?

php - cURL - 加载具有 CloudFlare 保护的网站

php - 我使用 curl post 在 body 标签中丢失了一个 css 背景图像

php - 事务在 CodeIgniter 中无法正常工作

php - Codeigniter 连接到 CentOS 和 mariadb 作为数据库管理的 SSH 服务器的可能设置是什么?