ホームページ  >  記事  >  バックエンド開発  >  PHP は sqlsrv を使用してリモート sql2008 データ テーブル内の Chinese という名前のフィールドをクエリしますが、値を取得できません。

PHP は sqlsrv を使用してリモート sql2008 データ テーブル内の Chinese という名前のフィールドをクエリしますが、値を取得できません。

WBOY
WBOYオリジナル
2016-06-23 14:01:14875ブラウズ

PHP が sqlsrv を使用してリモート sql2008 データテーブル内の Chinese という名前のフィールドをクエリすると、値を取得できません。以下に示すように:

クエリ ステートメント:
カスタム ID による d_demand 送信順序から上位 1 のカスタム ID、デマンド ID、デマンド タイプ、デマンドの説明、ソリューションの制限時間、デマンド送信時間、フラグ、lastmodify を選択します

取得された結果:
顧客番号: 500364、要件番号: 要件の種類: 要件の説明: 解決期限: 要件の提出時間: フラグ: 最終更新者: 1014
上に示すように:customid と lastmodify のみが値を取得しています

ライブラリに接続するときに指定されたコーディング: CharacterSet= >utf-8

至急、オンラインでお待ちしています!


ディスカッションへの返信(解決策)

脱出!
[d_requirement submit] から上位 1 つのカスタム ID、[要件 ID]、[要件タイプ]、[要件の説明]、[解決期限]、[要件提出時間]、[フラグ]、lastmodify を選択します カスタム ID で注文します

あなたが作成しますコントローラーでクエリを実行すると、その書き方がわかります

エスケープ!
[d_requirement submit] から上位 1 つのカスタム ID、[要件 ID]、[要件タイプ]、[要件の説明]、[解決期限]、[要件提出時間]、[フラグ]、lastmodify を選択します カスタム ID で注文します

あなたが作成しますコントローラーでクエリを実行すれば、その書き方がわかります
エスケープとはどういう意味ですか? SQL2008では上記の書き方が普通ですが、PHPでは中国語フィールドの値が取得できません エスケープメソッドとは何ですか?

[] 角​​括弧は sqlserver の名前エスケープ文字であり、mysql の `` と同じ効果があります。
sqlserver のフィールド名は utf-8 エンコーディング (unicode) をサポートしません。オペレーティング システムは Microsoft の発明です。utf-8 は、UTF 標準と互換性があるようにのみ設計されています

あなたの問題は奇妙です。クエリ文字列を gbk または ucs-2 エンコードに変換して確認してみてください



変換、問題はまだ存在します

ゆっくりと自分でやってください!中国語をフィールド名として使用すること自体が間違いです

手元に sqlserver がないのでテストできません

問題は解決しました、中国語のフィールドは本当に扱いにくいです

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。