Php mysql问题,请检查项目是否存在
巨大的问题:Php mysql问题,请检查项目是否存在,php,mysql,Php,Mysql,巨大的问题: $gt = 'andrew'; mysql_connect('localhost', '', ''); mysql_select_db('database'); $result = mysql_query("SELECT gamertag FROM register WHERE gamertag = '".$gt."'"); while ($row = mysql_fetch_assoc($result)) { $gt = $row['gamertag']; } if
$gt = 'andrew';
mysql_connect('localhost', '', '');
mysql_select_db('database');
$result = mysql_query("SELECT gamertag FROM register WHERE gamertag = '".$gt."'");
while ($row = mysql_fetch_assoc($result)) {
$gt = $row['gamertag'];
}
if($gt = 'andrew') {
echo 'This gamertag has previously been registered!';
}
将永远评估为真。。。。将$gt='andrew'
替换为$gt=='andrew'
if($gt = 'andrew'){
echo 'This gamertag has previously been registered!';
}
您需要一个==来测试相等性。将上述内容更改为:
if($gt = 'andrew'){
echo 'This gamertag has previously been registered!';
}
您可能还存在SQL注入漏洞。在$gt
if($gt == 'andrew'){
echo 'This gamertag has previously been registered!';
}
这个代码似乎没有必要。看来你也可以轻松做到:
while ($row = mysql_fetch_assoc($result)) {
$gt = $row['gamertag'];
}
if($gt = 'andrew'){
echo 'This gamertag has previously been registered!';
}
一旦得到结果,您就知道该标签已被使用。如果没有结果,while循环中的代码将不会执行,即名称尚未使用。您的查询已在检查该项是否存在。由此可以看出,如果查询返回任何行,则该项存在。因此,您的代码可以简单到:
while($row = mysql_fetch_assoc($result)){
echo 'This gamertag has previously been registered!';
}
你只是复制粘贴错误。我认为他的观点是OP可以做得不同,因此盲复制+粘贴是可以接受的。我们是程序员。即使是明目张胆的复制/粘贴也是不可接受的。这是一个坏习惯,会产生大量的bug。我的观点是应该完全排除错误代码。那有什么不好的?-1谢谢你不费心解释。
while($row = mysql_fetch_assoc($result)){
echo 'This gamertag has previously been registered!';
}
if(mysql_num_rows($result)) {
echo 'This gamertag exists!'
}