2015-07-10 47 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是一個很好的鏈接閱讀。