2014-05-24 61 views
0

config php文件。PHP-無法插入並從mysql獲取阿拉伯文數據

define("DB_SERVER", 'localhost'); 
define("DB_USER", 'root'); 
define("DB_PASS", 'pass'); 
define("DB_NAME", 'db'); 
define("mysql_query", 'SET CHARACTER_SET utf8'); 

這裏是表結構,該表已被設置爲utf8_persian_ci,當我插入的phpmyadmin從它的正常工作阿拉伯文文本獲取插入數據。

+-------+--------------+------+-----+---------+----------------+ 
| Field | Type   | Null | Key | Default | Extra   | 
+-------+--------------+------+-----+---------+----------------+ 
| id | int(111)  | NO | PRI | NULL | auto_increment | 
| name | varchar(122) | NO |  | NULL |    | 

+ ------- + -------------- + ------ + ----- + ------ --- + ---------------- +

查詢功能有點像以下。

////quering 
    public function query($sql){ 
     $this->last_query = $sql; 
     $result = mysql_query($sql, $this->connection); 
        $this->confirm_query($result); 
     return $result; 
    } 

但在這裏,當我從數據庫中獲取數據我得到(?????)類型的文本。 如果插入從PHP輸入,當我檢查數據庫(Ø'یبØ'بØ'Ø'ببØ'بØ')類型的數據,但當我從PHP回聲它回來顯示正確,但在數據庫中格式已更改。

1-如果從phpmyadmin的數據插入到數據庫工作正常(意味着數據庫字符是確定),但是如果從插入由PHP可以回顯用PHP(?????)

2- ...在數據庫中(Ø'یبØ'بØ'بØ'Ø'بØ'Ø'Ø'بØ'بØ')但在回聲OK

我如何設置插入表單插入阿拉伯文本是數據庫(mysql)

我如何回顯數據格式在數據庫中?

+0

什麼是網頁的字符集輸出? – WizKid

+0

從頁面本地字符是好的,但是當它從數據庫回聲不好 – SAR

+0

** 1。**從舊的mysql_ .. api切換到更新和支持的PDO樣式(http://php.net/manual/en/ book.pdo.php)** 2。**確保你正確初始化連接的字符集(http://php.net/manual/en/pdo.construct.php)** 3。**有一些重複的SO關於「PHP PDO MySql utf8」的問題(例如http://stackoverflow.com/questions/4854446/save-accents-in-mysql-database)。 ** 4。**一旦你獲得了utf8的權利,不應該有更多的問題(例如,從右到左的方向應該不重要) – xmojmr

回答

0

我們要設置UTF8在connection.php與提供所有數據庫連接:

<?php 
class Database { 
    protected $host='localhost'; 
    protected $user='root'; 
    protected $db = 'db_test'; 
    protected $pass = ''; 
    protected $conn; 

    public function __construct(){ 
     $this->conn = new PDO("mysql:host=".$this->host.";dbname=".$this->db,$this->user,$this->pass); 
     $this->conn->exec("SET CHARACTER SET utf8"); 
    } 
} 
相關問題