Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/257.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php mysql问题,请检查项目是否存在_Php_Mysql - Fatal编程技术网

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!'
}