配置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-如果是通过php from ...从数据库中插入(شیبشبشب شبشبش),但回显正常

我如何设置插入形式以将阿拉伯文本原样插入数据库(mysql)

我如何将其作为数据库中的数据格式回显?

最佳答案

我们必须在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");
    }
}

09-25 18:25
查看更多