【发布时间】:2013-01-11 18:47:47
【问题描述】:
我在 mysql 中有一个带有输出参数的存储过程,我需要将结果发送到我使用 codeigniter 的 php 中
注册模式
public function registerUser($data){
$sql = "call register_new_user('" . $data['uemail'] . "','" . $data['fname'] . "','".$data['lname'] . "','" . $data['pword']."',
'" . $data['states'] . "',".$data['chargifyId'].");";
if ($query = $this->db->query($sql)) {
return $this->db->query("Select @last_id");
} else {
return false;
}
}
这是存储过程
CREATE DEFINER=`root`@`localhost` PROCEDURE `register_new_user`(IN `uemail` VARCHAR(100), IN `fname` VARCHAR(45),
IN `lname` VARCHAR(45), IN `pword` VARCHAR(100), IN `states` VARCHAR(20), IN `chargifyid` INT, OUT `last_id` INT)
NO SQL
BEGIN
if not exists (SELECT * from gi_user where
(gi_user_email = uemail)) THEN
INSERT INTO gi_user(gi_user_email, gi_user_fname,
gi_user_lname, gi_user_password,gi_user_status,
gi_account_id, chargifyId)
VALUES (uemail,fname,lname,pword,states,1,chargifyid);
SET last_id = LAST_INSERT_ID( ) ;
END IF;
END
【问题讨论】:
-
请向我们展示您的代码
-
感谢您的回复,我已经添加了模型和程序
-
第二个查询没有用,尝试从第一个查询中获取行 $query->row() -- 使用 print_r 或 var_dump 打印出结果并进行测试。
标签: php mysql codeigniter stored-procedures