作者eric77712 (心要让你听见)
看板PHP
标题Re: [请益] 许功盖这些字无法新增到资料库?
时间Wed Jan 10 08:22:06 2007
昨天晚上针对这个问题研究了一下,
发现:其实这些字是可以用BIG5存到MySQL的,
也不需要再以别的同音字来取代,
我想,你会存不进去,
可能是因为你再将资料送进MySQL之前,
有加了stripslashes这个函式,
我的PHP之前也是有加,再输入包含 ' \ 等字元时,
资料库都会发生错误而拒绝写入,
我昨天试着把stripslashes拿掉,
让他直接以最原始的方式写入MySQL,
结果发现一切OK,就连我直接输入 ' \ 等符号,
他也让我过关了,我想,MySQL本身应该有对资料做过处理,
而我们之前有自己加了stripslashes,
这样反而会让资料库出错,因为副副德政,
所以,对於特殊字元的处理方式,
还是留给MySQL自己想办法,
我们就不要再多套用一些函式,以免得到反效果。
※ 引述《eric77712 (心要让你听见)》之铭言:
: 因为这些中文字的内码有 \ 这个符号,
: 一班MySQL是拒绝存取这个符号到资料库中,
: 印象中 ' 这个也不行,
: 不过我之前只有注意到 ' 不行,
: 没想到连 \ 也不行,
: 刚刚拿我写的留言板来开刀,
: 结果正如你所说的,
: 那些中文字中有包含 \ 内码的,
: 再写入十,资料库会发生错误而放弃写入,
: 我有一个解决的办法,
: 就是利用PHP的某个函式,
: 将MySQL拒绝的特定字元转换成全形的符号,
: 再送入资料库中,这样就可以闯关成功了,
: 但是由於现在碰到的问题本身来源就是一个双位元组字,
: 所以你可以考虑在送进资料库前,先把那些有特定字元的中文字,
: 转换成另外一个字,例如:许;诩。
: 这是我的想法,不知道有没有人有更好的解决办法。
: 那个函式用法如下:
: $Temp=str_replace("许","诩",$Temp);
: 希望对你有帮助。
: ※ 引述《htk (我要降二军啦!!!!!!!!)》之铭言:
: : 我写了很简单把网页的form输入的文字insert到MySQL资料库的程式
: : 一般中文字都没问题
: : 可是就是 许,佩,餐,功...这些字不行
: : 请问一下应该怎麽解决呢?
: : 我的MySQL版本是5.0.27
: : phpMyAdmin 2.9.1.1
: : MySQL 文字编码: UTF-8 Unicode (utf8)
: : MySQL 连线校对: utf-8_bin
: : 资料库的栏位的校对: latin1_swedish_ci
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 163.23.148.202
1F:推 buganini:还是UTF-8王道 01/10 08:41
2F:→ antontw:没有永远的王道 01/10 09:10