使用codeigniter调用mysql过程[错误:结果包含多行]

时间:2015-06-09 02:23:24

标签: php mysql codeigniter

我有状态 status_stage 。插入状态表后,我想将其添加到 status_stage 表中。我有这个程序:

DELIMITER $$

    CREATE DEFINER=`root`@`localhost` PROCEDURE `addStatus`(status VARCHAR(45), stage int (8))
BEGIN

    DECLARE status_id INT DEFAULT NULL; 

    INSERT INTO status (status)
    VALUES (status);

    SELECT id INTO status_id FROM status WHERE status = status;

    INSERT INTO stage_status (stage,status)
    VALUES (stage,id);
END

我用这个称呼这个函数:

$result= $this->db->query("call addStatus('$status', $stage)"); 
return ($result->num_rows()>0);

当我尝试它时,它给了我这个错误:

  

结果包含多行

1 个答案:

答案 0 :(得分:0)

由于SELECT ... INTO条款与WHERE一致,您的status = status语句会产生多个结果,这等于永远

您需要更改参数名称以将其与表列名称区分开来(例如,status_param)