使用PHP不返回结果的简单MYSQL查询
我正在尝试使用PHP运行一个简单的select语句,我肯定会有结果,但在运行页面时我没有收到任何数据使用PHP不返回结果的简单MYSQL查询,php,mysql,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
$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”的记录。这里有很多问题。这些是大的 首先,这是您没有得到结果的(主要)原因,您实际上没有执行查询。您存储了要运行的查询的字符串版本,但从未使用执行它,例如。你需要这样的东西:
// ...
$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
库。正如在中的大红色框中所解释的,您。mysql的mysql.*
函数已经过时,而且不安全——它们已经完全从现代版本的PHP(7.0及更高版本)中删除。使用或代替
第三,您对以下内容非常开放。您需要使用准备好的语句,而不是将变量连接到查询中。请参阅。如果您尚未执行查询,请不要使用
mysql\uquot
函数。这只是一个字符串,看看并了解它是如何工作的。感谢您的回复。我知道SQL注入的部分,现在并不太担心。这是一个相当简单的学校作业。奇怪的是,我上学期在学院上了一门课,教MYSQL/PHP使用MYSQL_*函数,我很震惊他们没有告诉我们不再支持它。谢谢你的回复。我应该可以从这里拿到。编辑:在看过一些旧文件后,我们学习了mysqli。我一定是忘记了,用了太多的资源来帮助完成这项任务。@Andrew_114我很高兴这对我有帮助。请记住选择答案旁边的复选标记!而且,他们教你使用mysql.*
也是不可原谅的。这些功能已经被弃用了4年,并在7.0中被完全删除,而7.0在近2年前才正式提供。你可能想为你的导师标记这个。@Andrew_114啊,好的。那更好!很容易错误地键入mysql.
,而忽略i
。如果您可以控制机器,最好禁用mysql
扩展。这样,使用旧函数的代码甚至不会运行,这迫使您在使用mysqli\ux…
或PDO时保持一致。