无法选择特定数据

时间:2012-11-13 00:39:02

标签: php mysql

我正在尝试仅在我正在构建的社交网络中选择特定数据。登录的会话是$SESSION['user_login'],它似乎没有选择我需要的行。有人有任何想法吗?

     <?php
    if (isset($_GET['u'])) {
    $username = mysql_real_escape_string($_GET['u']);
    if (ctype_alnum($username)) {
         //check user exists
         $check = mysql_query("SELECT username, first_name FROM users WHERE username='$username'");

        if (mysql_num_rows($check)===1) {
            $get       = mysql_fetch_assoc($check);
            $username  = $get['username'];
            $firstname = $get['first_name'];    
        }else{
            echo "<meta http-equiv=\"refresh\" content=\"0; url=index.php\">";  
            exit();
        }
    }
 }

1 个答案:

答案 0 :(得分:0)

正如评论mysql_query中提到的那样,不推荐使用,并建议使用更安全的扩展。选择是什么意思?使用您的选择查询,您将只获得1行,因为您使用唯一的用户名访问登录信息。您的代码是正确的,但您无法知道结果中是否存在该行。为了调试,你必须回应它。但是你不会在你的浏览器上得到任何东西,因为你正在使用执行(这就是我所说的)php标签,它们不会返回结果。您需要使用而不是让您的结果得到回应。

这是你的修复 -

 <?php
    if (isset($_GET['u'])) {
    $username = mysql_real_escape_string($_GET['u']);
    if (ctype_alnum($username)) {
    //check user exists
    $check = mysql_query("SELECT username, first_name FROM users WHERE username='$username'");
    if (mysql_num_rows($check)===1) {
     $get = mysql_fetch_assoc($check);
    $username = $get['username'];
    $firstname = $get['first_name'];    

    echo $username;
    echo $first_name;
   }
  else
  {
   echo "<meta http-equiv=\"refresh\" content=\"0; url=index.php\">";  
   exit();
   }
    }
    }

希望这会有所帮助..

DINS