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


calling mysql procedure using codeigniter [Error: result consisted more than one row]

我有表状态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);

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

结果包含多于一行

您的SELECT ... INTO语句得到了多个结果,因为您的WHERE子句与status = status,这等于永远

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