mysql数据库
(1)在MySQL数据库中建立存储过程user_ login,语句如下:mysql>delimiter //mysql>CREATE PROCEDURE user_login(inout name varchar(20),inout pwd varchar(20))mysql>Beginmysql>select * from tb_admin username=name and pwd=pwd;     ->END(2)建立数据源的连接,使用存储过程时与建立其他的数据源有所区别,需要创建一个MySQL对象,代码如下:
<?php
    $link=new mysqli("localhost","root","root","db_admin");
    $link->query("set names gb2312",MYSQLI_USE_RESULT);
?>
(3)利用Call语句调用存储过程,对传递的参数进行验证,并对验证结果给出相应的信息提示。关键程序代码如下:
<?php
if($_POST["submit"]<>""){
$result=$link->query("call user_login('".$_POST[username]."','".$_POST[pwd]."')",MYSQLI_USE_RESULT);
$info=mysqli_fetch_array($result);
if($info==true){
    echo "<script>alert('恭喜您,登录成功!');</script>";
}
else{
    echo "<script>alert('对不起,您输入的用户名或密码错误,请您重新输入!');</script>";
}
}
?>
就是登陆不成功,请各位朋友帮忙看看。感激不尽,QQ397647358

解决方案 »

  1.   

    SQL语句应该是查询匹配所返回的行数SELECT COUNT(*) FROM tb_admin WHERE username=name and pwd=pwd;至于下面查询的时候 用MYSQL_NUM_ROWS().
      

  2.   

    你确定你的存储过程建立成功了?
    就算成功了你的存储过程也没有返回成功或不成功的标识
    if($info==true){ } <--改成if($info){}
      

  3.   

    我晕,就验证下用户登录,有必要要存储过程吗?LZ是练着玩的吧。if($info==true){ ==>if($info=true){ 
      

  4.   

    谢谢各位,但是我的存储过程有问题。echo $info;出来的数据是失败的。希望能指点一下。因为本人对mysql的存储过程不是很熟悉。但是,正式因为不熟悉。所以要把它变成熟悉
      

  5.   


    delimiter // 
    CREATE PROCEDURE user_login(in name varchar(20),in password varchar(20),out sign smallint) 
    Begin 
    select count(*) into sign from tb_admin where username=name and pwd=password; 
    END
    //
    调用:
    call user_login('admin','admin',@sign);
    select @sign;
    0表示密码错误,1表示密码正确
      

  6.   

    http://hi.baidu.com/wy521ly/blog/item/f0acd1f46b6ceeea7609d7b1.html
    以上是实例地址,其中调用存储过程的为本人正在想的问题。希望能得到大家的帮助。