6

MsSQL にデータベースがあり、PHP コードから PDO オブジェクトを介して接続しています。データベースには列「Kadź」があります。

今-私が実行した場合

SELECT Kadź FROM <tablename>

SQL Server Management Studio からのクエリ - すべて正常に動作し、結果が得られます。ただし、実行しようとすると

$sql = "SELECT Kadź FROM <tablename>";

私は

SQLSTATE[HY000]: 一般的なエラー: 207 一般的な SQL Server エラー: SQL Server からのメッセージを確認してください [207] (重大度 16) [(null)]

エラー。他の列をクエリしても問題は発生しませんが、これは発生します。この列の名前にある「ź」文字が、PHP コードとデータベースの間のルートで不適切にエンコードされているためだと思われます。

私のサーバーで使用されている照合は「Polish_Cl_Al」です。属性を追加して修正しようとしました

$this->setAttribute(PDO::MYSQL_ATTR_INIT_COMMAND, "SET NAME'utf8'");

しかし、PDOは私に、ドライバーはそれをサポートしていないと答えました...

助けてくれてありがとう

4

1 に答える 1

5

You can try:

$pdo = new PDO('dblib:host=localhost;dbname=databasename;charset=UTF-8', 'username', 'password');

or (for windows)

$smth->setAttribute(PDO::SQLSRV_ATTR_ENCODING, PDO::SQLSRV_ENCODING_UTF8);
于 2012-08-22T07:04:37.163 に答える