Php MYSQL查询因编码实体而失败

Php MYSQL查询因编码实体而失败,php,mysql,Php,Mysql,我有以下查询,它应该计算有多少行具有相同的值: $query = mysql_query("SELECT * FROM top2000 where artist='$arEnt' AND title='$tiEnt'", $link); 它的工作原理非常完美,但由于用户可以键入“'”、“'”或任何其他非字母字符,因此我首先使用以下代码对其值进行编码: $entry = htmlentities($tEcho, ENT_QUOTES, 'UTF-8'); list($arEnt, $tiEnt)

我有以下查询,它应该计算有多少行具有相同的值:

$query = mysql_query("SELECT * FROM top2000 where artist='$arEnt' AND title='$tiEnt'", $link);
它的工作原理非常完美,但由于用户可以键入“'”、“'”或任何其他非字母字符,因此我首先使用以下代码对其值进行编码:

$entry = htmlentities($tEcho, ENT_QUOTES, 'UTF-8');
list($arEnt, $tiEnt) = split(' - ', $entry);
别误会我的意思,除非有人引用某句话或其他东西,否则这一切都很顺利,例如:

SELECT * FROM top2000 where artist='DJ Stephanie' AND title='Karma's A Bitch'
数据库中的值如下所示:

title='DJ Stephanie' 
artist = 'Karma's A Bitch'

与您看到的完全相同,但mysql\u num\u rows返回0。为什么?

PSA:mysql\u*函数是。不建议编写新代码,因为它会阻止您将来升级。相反,请使用或和.mysql\u real\u escape\u string()正如Jason McCreary所说,你必须继续前进,停止使用mysql函数。使用它会使你的站点暴露于sql注入漏洞。你的表编码是什么?@Shamil utf8\u general\u ci