2015-07-10 42 views
-3

我有这个插入的PHP代码:从MySQL返回插入和取回??????????????签署阿拉伯文字

<?PHP 
require("config.inc.php"); 
if (!empty($_POST)) { 
    $query = "INSERT INTO projects (project_author, project_title, project_spec, project_links, project_desc,created_at) VALUES (:user, :title, :spec, :links, :desc, NOW()) "; 
    $query_params = array(
     ':user' => $_POST['author'], 
     ':title' => $_POST['title'], 
     ':spec' => $_POST['spec'], 
     ':links' => $_POST['links'], 
     ':desc' => $_POST['desc'], 
    ); 
    try { 
     $stmt = $db->prepare($query); 
     $result = $stmt->execute($query_params); 
    } 
    catch (PDOException $ex) { 
     $response["success"] = 0; 
     $response["message"] = "Database Error. Couldn't add post!"; 
     die(json_encode($ex)); 
    } 

    $response["success"] = 1; 
    $response["message"] = "Post Successfully Added!"; 
    echo json_encode($response); 

}else{ 
echo 'omar almrsomi'; 
} 
?> 

从MySQL中检索PHP代码:

<?php 
$mysql_db_hostname = "com"; 
$mysql_db_user = "xxxxx"; 
$mysql_db_password = "xxxxxxxxxx"; 
$mysql_db_database = "xxxxxxxxx"; 

$con = @mysqli_connect($mysql_db_hostname, $mysql_db_user, $mysql_db_password, 
$mysql_db_database); 

if (!$con) { 
trigger_error('Could not connect to MySQL: ' . mysqli_connect_error()); 
} 
$var = array(); 
$sql = "SELECT * FROM projects"; 
$result = mysqli_query($con, $sql); 

while($obj = mysqli_fetch_object($result)) { 
$var[] = $obj; 
} 
echo '{"projects":'.json_encode($var).'}'; 
?> 

问题:

插入和检索MySQL给了?????????????标志。

注:

在阿拉伯语中插入文本。

问:

如何插入阿拉伯语(Unicode)的到MySQL?

在此先感谢

+0

您的一些downvotes(在一个相当明确的问题,否则)可能是由于您使用全部大写(现在编辑出)。这通常与互联网上的呼喊有关。 – halfer

回答

0

您需要设置表上的正确整理(又名字符编码),以及对表和/或数据库的Character Set作为一个整体来使用,这将有需要在排序时使用阿拉伯字符,否则将出现未知字符,如您所见,因为?,我不知道哪种字符编码最适合您选择的字符,但在此处查看帮助将阿拉伯字符保存到MySQL的帮助。另外,请检查您是否在输出的HTML页面上声明了相同的编码,否则页面可能会尝试使用不正确的默认编码呈现字符,并给出相同的问题。

Store Arabic text in mysql database using php

也由Chris85在评论中详述,UTF-8 all the way through是一个很好的链接阅读。