gpt4 book ai didi

php - 在 codeigniter 中处理存储过程输出参数

转载 作者:行者123 更新时间:2023-11-29 01:30:34 24 4
gpt4 key购买 nike

我在 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

最佳答案

使用CodeIgniter 交易

$this->db->trans_start();
$this->db->query('AN SQL QUERY...');
$this->db->query('ANOTHER QUERY...');
$this->db->query('AND YET ANOTHER QUERY...');
$this->db->trans_complete();

例子:

$SQL = "call UPDATE("
. $ID.","
. $this->db->escape($data["NAME"])."," // input
. $this->db->escape($data["DESCRIPTION"])."," // input
. " @out1" ."," // output
. " @out2" //output
.");";


$this->db->trans_start();
$this->db->query($SQL); // not need to get output
$query = $this->db->query("SELECT @out1 as row_1, @out2 as row_2");
$this->db->trans_complete();

$result = array();

if($query->num_rows() > 0)
$result = $query->result_array();

print_r($result);

关于php - 在 codeigniter 中处理存储过程输出参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14561894/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com