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