我正在使用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兩次詢問相同的問題 –