To jest część mojej lekcji PDO. Muszę użyć języka utf-8
dla języka hebrajskiego, ale gdy ustawię ATTR_PERSISTENT
na true
, tekst wyjściowy będzie wyświetlany jako ??????
. Jeśli przełączę ATTR_PERSISTENT
na false
, wynik będzie prawidłowy.PHP PDO, Nie można ustawić nazwy, gdy połączenie jest trwałe?
public function __construct() {
// Set DSN
$dsn = 'mysql:host=' . $this->host . ';dbname=' . $this->dbname;
// Set options
$options = array(
PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8',
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_PERSISTENT => true
);
// Create a new PDO instanace
try {
$this->dbh = new PDO($dsn, $this->user, $this->pass, $options);
}
// Catch any errors
catch (PDOException $e) {
$this->error = $e->getMessage();
}
}
Czy istnieje konflikt pomiędzy:
PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8'
oraz:
PDO::ATTR_PERSISTENT => true
Jaki jest typ pliku kodowania? – rray
@rray It's utf-8 –
Co ciekawe, jest to, że było [zadawane wcześniej] (http://stackoverflow.com/questions/29714253/pdoattr-persistent-utf-8-encoding) i nie przyciągnęły prawie żadnej uwagi. –