2014-05-24 63 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"); 
    } 
} 
相关问题