2013-04-22 37 views
0

您好IAM真正的战斗来解决这个问题将Unicode字符数据库问题

我有一个脚本,将阿拉伯字母到数据库

我的数据库和表是utf-unicode_ci

$title = make_safe($_POST['title']); 
$author = make_safe($_POST['author']); 
$category = make_safe($_POST['category']); 
$meta = str_replace(array('-', ' ', '*'),",",make_safe($_POST['meta'])); 
if ($title == "" OR $author == "" OR $category == "") 
{ 
    echo $lang['STORY_FIELDS_MUST_FILL']; 
    echo "<META HTTP-EQUIV='refresh' CONTENT='2; URL= stories.php?action=add'>"; 
} 
else 
{ 
    $stmt = $db->prepare ("INSERT INTO stories (title,author,category,meta,date) 
    VALUES (:title,:author,:category,:meta)"); 
    $stmt->execute(array(':title' => $title, 
         ':author' => $author, 
         ':category' => $category, 
         ':meta' => $meta)); 
    echo "$lang[STORY_ADDED]"; 
    echo "<META HTTP-EQUIV='refresh' CONTENT='2; URL=" . $_SERVER['HTTP_REFERER'] . "'>"; 
} 

当添加文章从这个PHP代码它显示在这样的phpmyadmin

http://i.stack.imgur.com/bQMag.jpg

当我插入值,通过phpMyAdmin的

它表明这样的,一切要细

http://i.stack.imgur.com/ohmlv.jpg

如何通过PHP代码添加它来显示同样喜欢从phpMyAdmin的将它添加

+0

所以'make_safe'必须有一些技巧在做。如果您也可以发布该功能。 – Rikesh 2013-04-22 09:10:24

+1

当你连接到mysql时,你执行'SET names utf8'查询吗? – krcko 2013-04-22 09:11:10

+1

'make_safe()'似乎是不必要的 – 2013-04-22 09:11:41

回答

0

感谢解决方案是连接后执行此代码执行此

$ pdo-> exec('SET NAMES \'utf8 \'COLLATE \'utf8_unicode_ci \'');