无论字符串是什么,我的代码总是返回“true”我尝试了很多东西,但它们只返回 false...我不知道我可以做什么来解决这个问题...我的代码:
public function isBlacklisted($string)
{
$apis = mysql_connect("mysql.hostinger.fr", "mysql user", "testpass") or die(mysql_error());
mysql_select_db("u770656121_api", $apis);
$sql = "SELECT * FROM blacklist";
$result = mysql_query($sql, $apis);
while($row = mysql_fetch_array($result)) {
$username = $row['username'];
if (strpos($string,$username) !== 0) {
return true;
break;
} else {
return false;
break;
}
}
}
strpos
;如果位于字符串的第一个位置,则返回 false
。 听起来你想做:0
此外,您正在循环数据库结果,只有在找到它时才应该返回:
if (strpos($string,$username) !== false) {
或者,更好的是:
while($row = mysql_fetch_array($result)) {
$username = $row['username'];
if (strpos($string,$username) !== false) {
return true;
}
}
return false;
确保转义
$sql = "SELECT * FROM blacklist WHERE 'username' LIKE '%$username%'";
$result = mysql_query($sql, $apis);
while($row = mysql_fetch_array($result)) {
if ($row['username']) return true;
}
,最好切换到
$username
或 mysqli
,而不是使用已弃用的 pdo
语句。