2012-04-25 78 views
0

此SQL失敗。非ASCII字符停止mysql語句

SQL是

INSERT INTO 
    `migration_loose_terms` 
    (`source`,`field`,`term`,`lastaccess`) 
VALUES 
    ('services.media','keywords','spermatozoïde','2012-04-25 12:00:00') 

因爲它包含了一個奇怪的字符(ï)

你在php/mysql中使用什麼函數來清除要刪除的nonascii字符或將該字以某種方式放入mysql?

+2

我確保所有的東西都使用UTF-8:我的表格,PHP-MySQL連接,PHP內,瀏覽器內... – eggyal 2012-04-25 22:30:42

+0

SQL究竟發生了什麼故障? – 2012-04-25 22:37:40

+0

這樣;不正確的字符串值:'\ xEFde'第1行的'term'列 – 2012-04-25 22:44:16

回答

2

如果你想剝奪你可以使用下面的代碼的非ASCII字符:

<?php 
$input = "Clean the non ASCII äócharacters."; 
$output = preg_replace('/[^(\x20-\x7F)]*/','', $input); 
echo $output; 
?> 

否則,你有沒有試着用mysql_real_escape_string包裹有問題的話?