PHP-无法从mysql插入和获取阿拉伯数据

时间:2014-05-24 17:04:05

标签: php mysql

配置php文件。

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回显(?????)

2-如果从...插入数据库中的数据库(Ø'یبØ'بØ'بØ'بØ'بØ'),但在回显中确定

我如何设置插入表单以插入阿拉伯语文本到数据库(mysql)

当数据格式在数据库中时,我如何回复它?

1 个答案:

答案 0 :(得分:1)

我们必须在connection.php中设置utf8,并为所有人提供数据库连接:

<?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");
    }
}