Php MySQLi准备的语句有一个句号(.)?

Php MySQLi准备的语句有一个句号(.)?,php,mysqli,Php,Mysqli,我正在尝试按以下格式搜索一个充满域名的表: 10minutemail.com 我的问题是,我不知道如何在SELECT语句中转义fullstop,以便实际得到响应 $_POST['email'] = strtolower($_POST['email']); $maildomain = explode('@', $_POST['email']); $domain = $mysqli->prepare('SELECT * FROM `blacklist` WHERE Domain = ?'

我正在尝试按以下格式搜索一个充满域名的表:

10minutemail.com
我的问题是,我不知道如何在SELECT语句中转义fullstop,以便实际得到响应

$_POST['email'] = strtolower($_POST['email']);

$maildomain = explode('@', $_POST['email']);

$domain = $mysqli->prepare('SELECT * FROM `blacklist` WHERE Domain = ?');
$domain->bind_param('s',$maildomain[1]);
$domain->execute();
$domain->store_result();

echo $domain->num_rows;
返回0,无论$maildomain[1]是否实际包含在表中


phpMyAdmin也做了同样的事情

问题是在表中域名的末尾有一个不可见的字符。在修剪域名以删除任何一方的垃圾后,查询按其应有的方式运行。

phpMyAdmin可以很好地逃避一切,因此屏幕截图的意思是找不到字符串。请注意,这里的字符串10minutemail.com与图片0-mail.com中的字符串不同。你能在phpMyAdmin中做一个一般性的浏览来显示后者确实存在于其中吗?首先让数据库工作,然后修复PHP是值得的。@MrMayo在使用prepared语句执行之前是否打印并检查了$maildomain[1]的值?@halfer当然,我做了两个不同的示例只是为了说明它发生在所有事情上。这里显示了一组域的数据库:我认为这不太可能,但是在域名的末尾会有一些随机的不可见字符改变它的值吗?@JensonMJohn是的,这就是它的本意。我会的。谢谢你的帮助。也谢谢你的帮助@JensonMJohn。