我正在使用mysql。当我做简单的查询SELECT * FROM table
它返回РђР»РμРєСЃРμРμРІРёС‡。它应该显示俄文字母。我的数据库,表,列都设置为utf8_general_ci。 php文件是utf8,没有bom。当我查询设置名称cp1251,它解决了问题,但为什么有cp1251,如果所有的东西都在utf 8?mysql中的无效字符集
数据库连接
class Database {
public $user = 'root';
public $password = '';
function __construct() {
$this->connect();
}
function connect() {
try {
$this->dbh = new PDO('mysql:host=localhost;dbname=university;charset=utf8', $this->user, $this->password);
$this->dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch(PDOException $e) {
echo 'ERROR: ' . $e->getMessage();
}
}
function selectQuery($sql) {
$this->stmt = $this->dbh->prepare($sql);
$this->stmt->execute();
}
function insertQuery($sql) {
$this->stmt = $this->dbh->prepare($sql);
$this->stmt->execute();
}
}
查询
$this->db = new Database();
$q = $this->db->selectQuery('SELECT * FROM students');
$data = $this->db->stmt->fetchAll($q);
我很高兴你在最后一个问题后改为PDO :) – SamV
-1两次询问相同的问题 –