-1

我有一个组装这个查询的 PHP 脚本

SELECT * 
FROM `schueler`
WHERE `vorname` = 'Tom' AND
       `nachname` = 'Müller' AND
       passwort = 'danny12'

当我使用 phpMyAdmin 尝试此操作时,它可以工作,并且我得到了请求的行作为回报。虽然当我用 php 运行这个查询时,mysql_query然后mysql_num_rows告诉我没有返回任何行。

同一张表上的其他查询确实可以正常工作。我认为ü有问题。该行编码为utf8_general_ci

克里斯

4

2 回答 2

1

尝试在mysql_connect函数之后设置字符编码,如下所示:

mysql_query("set character_set_client='utf8'"); 
mysql_query("set character_set_results='utf8'"); 
mysql_query("set collation_connection='utf8_general_ci'"); 

另请注意,该mysql_扩展在 PHP 5.5 中已弃用,您应该转向更新和更安全的扩展,例如mysqli_PDO

于 2013-09-01T14:57:21.770 回答
0

您的 PHP 文件也必须编码为 UTF-8。如果您不确定文件的编码,请打开记事本,单击“另存为...”,然后检查“编码”下拉菜单是否为“UTF-8”。如果没有,请将其设置为,然后保存。

除此之外,您必须使用mysql_set_charset()设置连接的字符集,例如

mysql_set_charset("utf8");

或者(更好)MySQLi 或 PDO 中的等价物。

于 2013-09-01T15:00:14.250 回答