SQL查询(select * where)在php中不起作用

时间:2015-08-30 15:00:40

标签: php mysql

    <?php
$mysqli_host = 'localhost';
$mysqli_user = 'root';
$mysqli_pass = '';
$mysqli_db = 'fives';

$link = mysqli_connect($mysqli_host,$mysqli_user,$mysqli_pass,$mysqli_db);

if (isset($_GET['username'])) {
    $username = mysqli_real_escape_string($link,$_GET['username']);
    print $username. "<br>";
    if (!empty($username)) {
        $username_query = mysqli_query($link,"SELECT * FROM users");
            while($row = mysqli_fetch_array($username_query)) {
                print "username: " . $row["username"]. " - password: " . $row["Password"]. " - date:" . $row["date"]. "<br>";
            }
            print $username_result = mysqli_num_rows($username_query) . "<br>";//print 1

            $username_query = mysqli_query($link,"SELECT * FROM users WHERE username = '" . $username . "'");
            while($row = mysqli_fetch_array($username_query)) {
                print "username: " . $row["username"]. " - password: " . $row["Password"]. " - date:" . $row["date"]. "<br>";
            }
            print $username_result = mysqli_num_rows($username_query);//print 0
    }
}
?>

它打印的是什么

yariv
username: "yariv" - password: "1234" - date:2015-08-26
1
0

第一个查询没有问题..它从[Users]获取所有数据,这是1行,但是当我试图通过使用where username = '" . $username . "'获取它时,sql查询得到0行。 为什么会那样?

1 个答案:

答案 0 :(得分:0)

第一个查询显示结果,因为您没有将给定的用户名与数据库中存在的用户名进行比较,但是在第二个查询中,您正在搜索用户名到数据库用户名。所以你确定你提供了与数据库中用户名相同的正确用户名吗?