Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从php中的存储过程获取值_Php_Mysql_Codeigniter_Stored Procedures - Fatal编程技术网

从php中的存储过程获取值

从php中的存储过程获取值,php,mysql,codeigniter,stored-procedures,Php,Mysql,Codeigniter,Stored Procedures,这是我的SP: DELIMITER $$ CREATE DEFINER=FUNCTION `test`(p_begin varchar(10),p_end varchar(10),p_code varchar(2)) RETURNS varchar(10) CHARSET latin1 BEGIN DECLARE V_ADA VARCHAR(8); DECLARE V_LAST VARCHAR(8); DECLARE V_NIK VARCHAR(8); se

这是我的SP:

DELIMITER $$

CREATE DEFINER=FUNCTION `test`(p_begin varchar(10),p_end varchar(10),p_code varchar(2)) RETURNS varchar(10) CHARSET latin1
BEGIN
    DECLARE V_ADA VARCHAR(8);
    DECLARE V_LAST VARCHAR(8);
    DECLARE V_NIK  VARCHAR(8);

    select NIK INTO V_NIK from absen where join_date >= p_begin and join_date<= p_end AND company_id=p_code ORDER BY NIK DESC LIMIT 1 ;

    SET V_NIK=V_NIK+1;
    return V_NIK;
END
结果是:

array(1) { [0]=> object(stdClass)#20 (1) { ["test("2007-01-01","2007-12-31", "1")"]=> string(7) "118" } } 

我的问题是,我想从存储过程118中获取值,但我不知道如何将对象更改为字符串。

如果需要将对象作为文本发送到其他地方的数据库、Javascript代码,根据具体情况,您可以选择序列化、json_编码、XML转换等等。

尝试以下方法:

$query=$this->db->query("select test(\"$begin\",\"$end\", \"$code\")")->result();

// Cast object to array (also you can try get_object_vars() to do that)
$query = (array)$query[0];

// Get the last value from array (it the only on so it is OK)
echo end($query);

可能会有所帮助。

是否可以将查询重写为选择测试“$begin”、“$end”、“$code”作为结果?还有,这不是很容易受到SQL注入的攻击吗?@raina77现在我得到这个objectCI\u DB\u mysql\u result19 8{[conn\u id]=>resource31类型mysql link persistent[result\u id]=>resource43类型mysql result[result\u array]=>array0{}[result\u object]=>array0{}[custom\u result\u object]=>array0{}[current\u row]=>int0[num rows]=>int1[row\u data]=>NULL}这如何回答这个问题?我不知道如何将对象更改为字符串……这取决于需求。他为什么要把这个物体变成一根绳子呢?哦,我想他是在享受他的音乐solution@raina77ow我想从3分钟前开始接受,但我必须等待:
$query=$this->db->query("select test(\"$begin\",\"$end\", \"$code\")")->result();

// Cast object to array (also you can try get_object_vars() to do that)
$query = (array)$query[0];

// Get the last value from array (it the only on so it is OK)
echo end($query);