简单的MYSQL查询不使用PHP返回结果

时间:2017-11-11 21:20:21

标签: php mysql

我正在尝试使用PHP运行一个简单的select语句,我确定应该有结果,但是在运行页面时我没有收到任何数据。

$username = 'racarric';
$username_check = "SELECT * FROM users WHERE username = '$username'";

if (mysql_num_rows($username_check) > 0) {
    echo "Username is already in use";
    //break;
}
else {
    echo "No users have this username";
}

在我的数据库中,我有一个记录,其中用户名为' racarric'。

1 个答案:

答案 0 :(得分:2)

你这里有很多问题。这是最重要的。

首先,这是您未获得结果的(主要)原因,您实际上并未执行查询。您存储要运行的查询的字符串版本,但您永远不会使用mysql_query()执行它。你需要这样的东西:

// ...
$username_check = "SELECT * FROM users WHERE username = '$username'";

$query = mysql_query($username_check); // this is the new line

if (mysql_num_rows($query) > 0) { // note the parameter change
// ...

第二次,您正在使用mysql库。正如the documentation link above中的大红色框中所述,您shouldn't be using mysql_* functions at allmysql_*函数已过时,deprecated和不安全 - 它们已完全从现代版本的PHP(7.0及更高版本)中删除。请改用MySQLiPDO

第三次,您对SQL injection持开放态度。您需要使用预准备语句,而不是将变量连接到查询中。请参阅How can I prevent SQL injection in PHP?