2012-06-18 46 views
0

你好,stackoverflow人!php:在myadmin數據庫中插入特殊字符

我有一個問題,經過3個月的嘗試後我無法解決。在這個網站上有類似的問題,但他們沒有給我我需要的結果。

結果我得到: click here for the result i get

結構設置: click here for the structure

我的編碼:

include 'connectiondetails.php'; 

//making the database connection 
dbVerbind(); 

$str = '<p>€ é í å </p>'; 

// things i've tried 
//$test1 = $_GET['test1']; 
//$test2 = htmlspecialchars_decode('<p>€ é í å </p>'); 
//$test3 = html_entity_decode($str, ENT_QUOTES, 'UTF-8'); 
//$test4 = htmlspecialchars_decode($str , ENT_QUOTES); 
//$test5 = htmlspecialchars('<p>€ é í å </p>', ENT_QUOTES); 
//$test6 = parse_str(html_entity_decode($str), ENT_QUOTES); 
//$orig = "<p>€ é í å </p>"; 
//$a = htmlentities($orig); 
//$test7 = html_entity_decode($a); 
//$test8 = $_GET['test8']; 
//$test9 = htmlentities($str, ENT_QUOTES); 
//$test10 = mysql_real_escape_string('€ é í å'); 

$test1 = $_GET['test1']; 
$test2 = $_GET['test2']; 
$test3 = $_GET['test3']; 
$test4 = $_GET['test4']; 
$test5 = $_GET['test5']; 
$test6 = $_GET['test6']; 
$test7 = $_GET['test7']; 
$test8 = $_GET['test8']; 
$test9 = $_GET['test9']; 
$test10 = $_GET['test10']; 

if (empty($test1)) { 
echo '<p>empty</p>'; 
} 
else { 
$results = mysql_query(" INSERT INTO insert_test.content ( 
              test1, 
              test2, 
              test3, 
              test4, 
              test5, 
              test6, 
              test7, 
              test8, 
              test9, 
              test10 
              ) 
        VALUES( '$test1', 
           '$test2', 
           '".htmlspecialchars('€ é í å')."', 
           '".mysql_real_escape_string('€ é í å')."', 
           '€ é í å', 
           '€ é í å', 
           '$test7', 
           '$test8', 
           '$test9', 
           '$test10' 
          ) 
        "); 
} 

回答

1

您要發送的字符爲Unicode,和領域是在Unicode中,但數據庫連接不是。連接後立即使用:

SET NAMES 'utf8'