2011-06-06 54 views
0

他我有一个问题MySQL的入门url编码数据导入数据库

我有一个MySQL数据库转储,但所有的数据都URL编码的具有+代替空格等字符%20等

我试着直接进口这一点,并写了一个PHP脚本来对数据进行解码,并把它改写回数据库,

/// make rs.......... 

........ 
do { 
    // decode the items in the countries table 
    $myCountryID = $row_countries['id_con']; 
    $new_country_con = urldecode($row_countries['country_con']); 

    $result = mysql_query("UPDATE countries_con SET country_con = '".$new_country_con."' 
    WHERE id_con = ".$myCountryID."")or die(mysql_error()) ; 
    echo("id_win: ".$myCountryID."<br>added country_con: ".$new_country_con."<br>"); 

} while ($row_countries = mysql_fetch_assoc($countries)); 
echo('----------------------------------END Countries-------------------------------------<br><br>'); 

页面被设置为使用UTF-8在数据库中的所有表都设置为使用UTF-8

echo语句输出正确的字符,但它仍然以urlencoded字符串的形式存储在数据库中,我如何将它作为utf8作为utf8而没有url编码字符?

+2

'$ new_country_con = mysql_real_escape_string(urldecode($ row_countries [ 'country_con']));' – 2011-06-06 17:58:33

+1

SQL不是串!不要直接在SQL语句中插入值,像Frank提到的那样使用占位符'?'或'mysql escape'函数。 – Konerak 2011-06-06 18:04:44

+0

谢谢你这么多,不用说我现在觉得有点蠢,我怎么可能忽略了mysql_real_escape_string?也很乐意将你标记为正确的答案 – 2011-06-06 18:22:51

回答