PHP PDO Keep Getting Error: Charset = UTF8: недопустимая фраза chacheet была указана в строке dsn

Я продолжаю получать эту ошибку: PHP PDO: Charset = UTF8: в строке dsn была указана недопустимая фраза chacheet.

Мой код похож на этот

function ConnectToSQLAndGetDBConnSTRVar() { try { $dbname = "irina"; $serverName = ".\SQLEXPRESS"; $username = "USERNAME"; $pw = "PASSWORD"; $dbh = new PDO ("sqlsrv:server=$serverName;Database=$dbname;charset=utf8","$username","$pw"); return $dbh; } catch (PDOException $e) { print "Failed to get DB handle: " . $e->getMessage() . "\n"; exit; } } 

И это не имеет значения, как я пишу utf8 .. UTF8 или UTF-8 или utf-8, ни один из них не работает для меня. Так что я делаю, пожалуйста, помогите мне ..

Вы можете найти параметры, принятые в строке DSN на этой странице руководства PHP .

В DSN нет параметра Charset для драйвера PDO «SQL Server» (с префиксом DSN sqlserv: .

Имейте в виду, что все драйверы PDO имеют разные соглашения о доставке, поскольку они передаются непосредственно драйверу и не нормализуются PDO.

Существует альтернативный драйвер PDO для SQL Server под названием «PDO_DBLIB», который принимает charset как параметр DSN , но имеет префикс «sybase:», «mssql:» или «dblib:», в зависимости от параметров компиляции.

У меня была такая же ошибка, следуя инструкциям, приведенным здесь, чтобы запретить чтение данных для чтения sql – сказано, что до php 5.3.6 charset игнорировался, и вы можете использовать его, включая опции:

 $dsn = 'mysql:host=' . $this->host . ';dbname=' . $this->dbname; // Set options $options = array( PDO::ATTR_PERSISTENT => true,//can help to improve performance PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, //throws exceptions whenever a db error occurs PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES uft8' //>= PHP 5.3.6 ); try { $this->conn = new PDO($dsn, $this->user, $this->pass, $options); } catch ( PDOException $e ) { $this->error = $e->getMessage(); }