存储过程:DELIMITER $$
CREATE PROCEDURE login (IN uname VARCHAR(30),IN upwd VARCHAR(32), OUT re_uinfo VARCHAR(50))
BEGIN
SELECT @re_uinfo:=concat(user_id,'|',user_name) as uinfo FROM glcity_user WHERE user_name=uname AND user_pwd=upwd AND user_state=1 LIMIT 1;
END;
$$PHP调用:
#$ok_cg= $DB->hxGetOne("call login('admin','123456',@ok_cg)");
MYSQL数据库:
function hxGetOne($sql = "")
{
if($sql)
{
$this->hxQuery($sql);
}
$rows = mysql_fetch_array($this->result,$this->rsType);
                   return $rows;
}说明:
如果
$ok_cg= $DB->hxGetOne("SELECT * FROM glcity_user WHERE user_name='admin' AND user_pwd='123456' AND user_state=1 LIMIT 1;这样是有一条记录返回的,输出$ok_cg["user_name"]为"admin",
通过存储过程来调用就没有值输出了,我是PHP的初学者,请各位朋友帮帮忙了,很急.
我的功能是用户登录时,通过存储过程返回登录的用户的ID号及用户的昵称.

解决方案 »

  1.   

    在sql工具中执行下 call login('admin','123456',@ok_cg) 看看什么结果
      

  2.   

    在phpmyadmin中执行以下两条语句:
    CALL login('admin','123',@aaa);
    SELECT @aaa ;可有结果输出:
    1|admin
    "1"是ID号,"admin"是昵称,所以说这样是对了呀PHP调用:
    #$ok_cg= $DB->hxGetOne("call login('admin','123456',@ok_cg)");
    echo "aaa" . $ok_cg["@ok_cg"] . "aaa";
    这样只有看到"aaaaaa"
    是不是我的PHP输出有错误?