1

テーブル名、列名、およびフィールドの両方にアクセント (é、è、à) を含むデータベースで、いくつかの php & SQL Server 2005 を実行しています。残念ながら、私はこのデータベースの所有者/作成者ではありませんが、所有者を平手打ちする必要があることに同意します :) 。

ODBCドライバーを使用してSQL Serverに接続していますodbc_connect($dsn,$user,$password)

私の問題は、アクセントのあるすべてのフィールドが認識されないことです。例:「Réseau」という名前のフィールドが7000あるにもかかわらず

$query="Select * from dbo.Table where col1= 'Réseau'"

0の結果が得られます No rows found

についても同じです:

$query="Select * from [dbo].[Tablé] 

SQLエラーを与える:

Warning: odbc_exec() [function.odbc-exec]: SQL error: [Microsoft][ODBC SQL Server Driver][SQL Server]Object name 'dbo.Tablé' not valid., SQL state S0002 in SQLExecDirect in...

そして、悲しいことに、私がネット上で見つけた次のようなヒントはどれも役に立ちませんでした:

'Réseau' , Réseau, [Réseau] , COLLATE SQL_Latin1_General_Cp437_CI_AI/French_CI_AS ...

詳細については、文字セット UTF-8 を使用しています。データベースの照合は French_CI_AS です。上記のすべてのクエリは、Access またはクエリ ツール (ODBC を使用) で完全に機能します。

  • *より明確にするために編集*
4

2 に答える 2

0

試す

$q="Select * from DatabaseTable where col1= N'Réseau'"
于 2012-06-06T08:25:58.550 に答える
0

ページにロケールを設定してみてください。私の設定はすべての特殊文字に役立つことがわかりました。

setlocale (LC_ALL, 'nl_BE');
于 2013-10-02T08:27:19.290 に答える