PHP使用GET显示来自MySQL的数据

时间:2012-01-27 02:17:08

标签: php mysql sql

我尝试使用$_GET查找用户的用户名,但实际上没有查看查询结果。这是代码:

<?php
$host     = "localhost";
$username = "root";
$password = "toor"; // :)
$database = "db";

$link = mysql_connect($host, $username, $password);
if(!$link){
    exit('Could not connect to database: '. mysql_error());
}

$email = mysql_real_escape_string(htmlspecialchars(stripslashes($_GET["e"])));

$query = "SELECT username FROM cc_card WHERE email = '$email'";

$result = mysql_query($query);
if(mysql_num_rows($result)){
    $user = mysql_fetch_assoc($result);
    echo $user['username'];
} else {
    echo "Something's wrong";
}

它只是回归&#34;出了点问题&#34;。我希望它显示username表的cc_card字段,其中email = email。我做错了什么?

2 个答案:

答案 0 :(得分:1)

如果您从发布的代码中收到“Something's wrong”,则表示cc_card表中的任何地方都没有电子邮件列与您在查询中指定的电子邮件值相匹配。

您需要验证已清理的$email变量的内容,实际上,是否存在于表格中的某个位置。尝试:

} else {
  echo "Something's wrong";
  var_dump($email);
}

要查看已清理的$email变量的内容,并从shell(或phpmyadmin或其他)手动查询数据库,以查找您指定的值是否存在。我打赌它不存在。

答案 1 :(得分:1)

您最好在查询后添加错误检查。

if (!$result) {
    die('Error: ' . mysql_error());
}

如果没有错误,则表示您的数据库中没有匹配的电子邮件。