比如这样一句:SELECT*FROMtableWHEREkw='今天'PHP程序这样写的:$sql="SELECT*FROMtableWHEREkw='今天'";相同的语句,在PHP里运行就无法查询,没有报错。把PHP的sql语句echo出来粘贴...
比如这样一句:
SELECT * FROM table WHERE kw='今天'
PHP程序这样写的:
$sql="SELECT * FROM table WHERE kw='今天'";
相同的语句,在PHP里运行就无法查询,没有报错。把PHP的sql语句echo出来粘贴到phpmyadmin中的sql功能里,就会提示错误,其中“今天”这部分是乱码。我的程序编码和phpmyadmin编码都是utf8。
如果我直接在phpmyadmin的sql功能里输入:
续~
SELECT * FROM table WHERE kw='今天',就能正确查询出结果。
我在查询结果的页面上按“创建PHP代码”后,出现的PHP代码是:$sql="SELECT * FROM table WHERE kw=\'今天\'",可是我把这段代码原封不动的放到PHP程序里,就会直接报错:
SELECT * FROM table WHERE kw=\'今天\'
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '\'今天\'' at line 1
请教高手这是怎么回事?
=================
一样啊。程序的文件是UTF-8,“今天”这个词的编码也是utf-8
=================
谢谢zzs1949。我想问下,mysql_query("SET NAMES 'gbk'");这一句的效果是什么呢? 会不会影响我现有数据库的编码?
另外,我数据库里“kw”列的编码就是utf8_general_ci啊,还需要这样改吗?
=================
下面是直接在phpmyadmin里输入SQL语句出现的错误:
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SELECT * FROM table WHERE kw=
展开