在PHP页面中调用存储过程,语句执行不成功~~,
但是在mysql命令行下调用 :mysql> call test();这样是可以输出结果
这是存储过程事
CREATE PROCEDURE `test`()
LANGUAGE SQL
NOT DETERMINISTIC
CONTAINS SQL
SQL SECURITY DEFINER
COMMENT ''
BEGIN
select * from userinfo;
END
PHP页面代码:返回报错为语句执行不成功
$host="localhost";
$user="root";
$password="root";
$db="radius_new";
$conn=mysql_connect($host,$user,$password) or die("can't connect to mysql");
mysql_select_db($db,$conn) or die("数据库不存在或不可用");$result=mysql_query("CALL radius_new.test();",$conn) or die("语句执行不成功");
$result=mysql_query("select @a",$conn);
echo print_r($result);
while($row = mysql_fetch_array($result))
{
$line = '<tr><td><a target = _blank href=\''.$row["url"].'\'>'.$row["title"].'('.$row["page_time"].')'.'</a></td></tr>';
echo $line;
printf("\n");}$err = mysql_error();
if($err){
echo "错误:".$err;
exit;
}

解决方案 »

  1.   

    因为在返回结果是:语句执行不成功因为找半天都没有查出是什么原因在Mysql命令下是正确返回结果的
      

  2.   


    $result=mysql_query("select 1;",$conn) or die("语句执行不成功");看看试否成功,以断定是PHP程序问题,还是存储过程问题。
      

  3.   

    错误之处就是在
    $result=mysql_query("select @a",$conn);
    echo print_r($result);
    这里,因为php调用mysql的存储过程后需调用php的mysqli类函数,我曾在做网站-人人购的时候也遇到这样的错误!
    你不妨试试这样改一下:
    $result=mysql_query("select @a",$conn);
    $ret=mysqli_fetch_array($result);
    echo print_r($ret);