在php mysql_fetch_array()和mysql_fetch_row()中不能处理同一个变量

时间:2011-11-23 06:55:47

标签: mysql phpmyadmin php

当我获取行时,它不获取数组我想知道我是否想要在会话中显示用户名我应该做什么。这是我正在检查用户名的代码,如果找到用户名,则返回用户名但无法显示。

请帮助我或建议我更好的方法。谢谢。 错误代码:功能

public function Check_login($uname,$pass)
{
    //echo $uname;

    $check=mysql_query("select name from user where name='$uname' and   password='$pass'");
    $log=mysql_fetch_row($check);
    $abc=mysql_fetch_array($check);
    echo $abc['name'];
    if($log>0)
    {
        $_SESSION['login']=1;
        echo $_SESSION['name']=$abc['name'];
        return $_SESSION['name'];
    }
    else
    {
        return false;
    }

主页:

   <?php
   session_start();
 include('function.php');
 $user=new user();
 if(!$user->get_session())
 {
header("location:index.php");
  }

 if($_GET['q']=='logout')
 {
$user->logout();
header("location:index.php");
 }
 ?>

这里是html代码:

<h1>All Information</h1>
Welcome<?php echo $_SESSION['name']; ?></br>

<a href="?q=logout">Logout</a>`enter code here`

2 个答案:

答案 0 :(得分:0)

$check=mysql_query("select name from user where name='$uname' and   password='$pass'");
session_start();
$abc = array();
if(mysql_num_rows($check) > 0){
    $abc=mysql_fetch_array($check); 
    if(count($abc)>0)
    {
        $_SESSION['login']=1;
        echo $_SESSION['name']=$abc['name'];
        return $_SESSION['name'];
    }
}
else
{
    return false;
}

我认为这将解决您的问题..用此更改您的代码..

答案 1 :(得分:0)

对于初学者,我强烈建议使用预准备语句而不是仅仅将用户名/密码丢入查询中。您可以将用户名和密码作为参数绑定到查询中,并防止任何类型的SQL注入。您还可以绑定返回到结果的名称,以便于访问。