在这里搜索后,我看不到任何人和我有同样(奇怪)的问题。 我有一个非常简单的任务,就是检查表上是否已存在某个名称,但问题是mysql_num_rows返回了错误的值。
对不起,我忘了提到这只会在我尝试查找带有特殊字符的单词时发生。 Bebês, Câmeras, Calção
就是例子。
$sql = "
SELECT cattitle as category
FROM categories
WHERE cattitle = '$title'
";
$res = mysql_query($sql, $con) or die(mysql_error());
$num = mysql_num_rows($res);
我甚至尝试过mysql_result
$sql = "
SELECT count(cattitle) as category
FROM categories
WHERE cattitle = '$title'
";
$res = mysql_query($sql, $con) or die(mysql_error());
$num = mysql_result($res,0);
最糟糕的是,当我直接运行查询时,我得到了正确的结果($ num> 0)。 我不是那个经验丰富的程序员,起初我以为它是从其他查询中返回值,但我检查并更改了这些变量的名称并且问题仍然存在。
可能是某种冲突吗?有人可以帮我解决这个错误吗? 亲切的问候,
答案 0 :(得分:0)
你的例子是基本的,它应该有效。它甚至在PHP manual as example。
尝试这种方式:
$sql = "
SELECT cattitle
FROM categories
WHERE cattitle = '$title'
LIMIT 1
";
$res = mysql_query($sql, $con) or die(mysql_error());
if ($row = mysql_fetch_assoc($res)) {
# category already exists, do smth?
}
答案 1 :(得分:0)
我认为您的问题可能出在mysql数据库的错误字符集和PHP脚本中的字符串中。
当你使用mysql控制台时,它会在正确的字符集中转换符号。
检查字符集并整理您的表格和字段字幕。
最佳解决方案将其更改为UTF8
编写脚本时也使用UTF8