存储过程:
DELIMITER $$
CREATE PROCEDURE login4 ()
BEGIN
SELECT * FROM glcity_user LIMIT 1;
END;
$$PHP调用并输出一个字段:
$ok_cg= $DB->hxGetOne("call login4()");
echo "aaa" . $ok_cg["user_name"] . "aaa";这样是没有值输出!!!
但如下语句就有输出:
$ok_cg= $DB->hxGetOne("SELECT * FROM glcity_user LIMIT 1");
echo "aaa" . $ok_cg["user_name"] . "aaa";这是为什么呀?
是不是我的PHP问题???

解决方案 »

  1.   

    楼主先在你的sql工具里执行看看这个存储过程 
      

  2.   

    在数据库里执行CALL login4(),是有一条记录的!!!
      

  3.   

    在mysql query browser中执行CALL login4(),是有一条记录出来的!!!
      

  4.   

    var_dump($DB->hxGetOne("call login4()"));//看看你有结果没 没有的话 说明hxGetOne对sql执行结果做了处理 跟过去看看
      

  5.   

    var_dump($DB->hxGetOne("call login4()"));
    如下结果:
    bbbccc
    Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in D:\wwwroot\php\huaxusoft\class\mysql.db.class.php on line 133
    bool(false)注意hxGetOne中有两处输出:
    function hxGetOne($sql = "")
    {
    if($sql)
    {
    echo "bbb";
    $this->hxQuery($sql);
    }
    echo "ccc";
    $rows = mysql_fetch_array($this->result,$this->rsType);  #从结果集中取得一行作为关联数组,或数字数组,或二者兼有。result是mysql_db_query 返回值。
    return $rows;
    }
      

  6.   

    是我的类的问题,没有加define(CLIENT_MULTI_RESULTS, 131072);
    谢谢大家了