ホームページ >バックエンド開発 >PHPチュートリアル >PHP は sqlsrv を使用してリモート sql2008 データ テーブル内の Chinese という名前のフィールドをクエリしますが、値を取得できません。
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 がないのでテストできません
問題は解決しました、中国語のフィールドは本当に扱いにくいです