mysql - 从 codeigniter 调用存储过程不起作用

标签 mysql codeigniter stored-procedures

我使用 mysql 作为我的数据库。我从我的模型中调用了一个存储过程。以下是我的模型函数。

public function call_sp()
    {
        $query = $this->db->query("call SPInsertEventTran()");
        return $query->result();
     }

我的存储过程如下。

DELIMITER $$

CREATE DEFINER=`root`@`localhost` PROCEDURE `SPInsertEventTran`(
IN IN_event_name varchar(45),
IN IN_date date,
IN IN_place varchar(45),
IN IN_starting_time time,
IN IN_end_time time,
IN IN_no_of_cams int,
IN IN_booked_or_not varchar(45),
IN IN_customer_id int,
IN IN_package_id int


)
BEGIN

iNSERT iNTO   event(event_name,date,place,starting_time,end_time,no_of_cams,booked_or_not,customer_id,package_id)
        values   (IN_Event_Name,IN_place,IN_starting_time,IN_end_time,IN_no_of_cams,IN_booked_or_not,
            IN_customer_id,IN_package_id);

insert into quotation (camera_charges,other,discount,event_id)
    select ev.no_of_cams*pg.charge_per_cam ,null,null,ev.id
     from event ev
    inner join package pg on ev.package_id=pg.id
    where ev.id=(select max(id) from event);
END

我收到这样的错误。

Error Number: 1318
Incorrect number of arguments for PROCEDURE mydb.SPInsertEventTran; expected 9, got 0
call SPInsertEventTran()
Filename: F:\wamp\www\eventmanagementsystem\system\database\DB_driver.php
Line Number: 331

谁能帮我解决这个错误吗?

最佳答案

您必须传递 CALL 方法中的所有参数,如下所示:

$sql = "CALL call SPInsertEventTran(?,?,?,?,?,?,?,?,?)";

$this->db->query($sql,[
    'Event_Name'    => 'value',
    'place'         => 'value'
    'starting_time' => 'value'
    'end_time'      => 'value'
    'no_of_cams'    => 'value'
    'booked_or_not' => 'value'
    'customer_id'   => 'value'
    'package_id'    => 'value'
]);

关于mysql - 从 codeigniter 调用存储过程不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40590663/

相关文章:

php - Codeigniter 验证库在 session 中存储错误

php - 单次登录、多应用认证

tsql - 在存储过程中更新之前验证记录

mysql - Oracle 名称中的 SQL 转义字符?

php - 根据父模型查找条件查询

mysql - 如果从另一台计算机单击按钮,如何禁用该按钮

php - 在 Codeigniter 的连接查询中获取数组结果时出错

Oracle存储过程-根据可选参数动态生成选择语句

stored-procedures - SQL Server 2012 存储过程被自动删除

php - 改进 MySQL 数据库的 PHP 搜索?