<?php
$link=mysql_connect("localhost","root","mysql");
mysql_select_db("sports_shop",$link);
mysql_query("set names gb2312");
$username=$_POST['username'];
$pwd=$_POST['password'];
$sql=mysql_query("call login('liuyu','1111111',@message);'",$link);
$sql = mysql_query("select @message;",$link);
$row = mysql_fetch_row($sql);
if(mysql_num_rows($sql)==1)
echo '1'; //这里输出了1,说明有结果,可是row[0]网页上什么都不显示!
echo $row[0];
?>在mysql中执行
call login('liuyu','111111',@message);
select @message;显示为
@message
--------
exsits 6b
存储过程为
DELIMITER $$;DROP PROCEDURE IF EXISTS `sports_shop`.`login`$$CREATE DEFINER=`root`@`localhost` PROCEDURE `login`(in username varchar(40),in userpassword varchar(20),out message varchar(40))
BEGIN
declare v_i int;
select count(*) into v_i from client where LoginName=username and Pwd=userpassword;
if v_i =0 then
set message = 'ok';
else
set message = 'exists';
end if;
END$$DELIMITER ;$$
$link=mysql_connect("localhost","root","mysql");
mysql_select_db("sports_shop",$link);
mysql_query("set names gb2312");
$username=$_POST['username'];
$pwd=$_POST['password'];
$sql=mysql_query("call login('liuyu','1111111',@message);'",$link);
$sql = mysql_query("select @message;",$link);
$row = mysql_fetch_row($sql);
if(mysql_num_rows($sql)==1)
echo '1'; //这里输出了1,说明有结果,可是row[0]网页上什么都不显示!
echo $row[0];
?>在mysql中执行
call login('liuyu','111111',@message);
select @message;显示为
@message
--------
exsits 6b
存储过程为
DELIMITER $$;DROP PROCEDURE IF EXISTS `sports_shop`.`login`$$CREATE DEFINER=`root`@`localhost` PROCEDURE `login`(in username varchar(40),in userpassword varchar(20),out message varchar(40))
BEGIN
declare v_i int;
select count(*) into v_i from client where LoginName=username and Pwd=userpassword;
if v_i =0 then
set message = 'ok';
else
set message = 'exists';
end if;
END$$DELIMITER ;$$
写错了,密码多写了一个1,总之上下存储过程是一致的
$sql = mysql_query("select @message as msg;",$link);
echo $row["msg"];
----------------
这样调用的话,其实是作为一个查询结果集返回的(跟查询一个表返回结果集类似)
你可以试下按你上面的方法操作一个查询一个表,看是否能得到结果没有?
$link=mysql_connect("localhost","root","mysql");
mysql_select_db("sports_shop",$link);
mysql_query("set names gb2312");
$username=$_POST['username'];
$pwd=$_POST['password']; $sql = mysql_query("call login('liuyu','1111111',@message);'");
$sql = mysql_query("select @message;");
$row = mysql_fetch_row($sql);
if(mysql_num_rows($sql)==1)
echo '1';
echo $row[0];
?>
mysql_query("set names gb2312");
$username=$_POST['username'];
$pwd=$_POST['password'];
$sql=mysql_query("call login('liuyu','1111111',@message);'",$link);
$sql = mysql_query("select @message;",$link);
$row = mysql_fetch_row($sql);
if(mysql_num_rows($sql)==1)
echo '1'; //这里输出了1,说明有结果,可是row[0]网页上什么都不显示!
echo $row[0];
?>
这里面,能正常显示“$row[0]”的值吗?
select @message;数据库里显示为
@message
--------
exsits 6b可是row【0】什么都没有,可是row里明明有一个值的啊
$row = mysql_fetch_row($sql);
if(mysql_num_rows($sql)==1)
echo '1';
echo $row[0];
$sql = mysql_query("select @message;",$link); -->$sql = mysql_query("select 'test';",$link);
$row = mysql_fetch_row($sql);
if(mysql_num_rows($sql)==1)
已经搞定了^-^