配置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)
当数据格式在数据库中时,我如何回复它?
答案 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");
}
}