ホームページ  >  記事  >  バックエンド開発  >  PHP mssql 拡張 SQL クエリ中国語フィールド名 solution_PHP チュートリアル

PHP mssql 拡張 SQL クエリ中国語フィールド名 solution_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-21 15:15:57872ブラウズ

1. 質問:

データベースは MS SQLServer2000 です。SQLServer2000 のテーブルのデータは MySQL5 にインポートする必要があります (フィールドとして中国語を使用しないことを強くお勧めします)。名前)。実際、この操作は SQL Server 上のレコードをクエリし、それらを MySQL に挿入することです。選択されたスクリプト言語は PHP です。PHP は MSSQL と MySQL の拡張機能を提供し、両方のデータベースの操作を容易にします。
SQLServer のテーブルのフィールド名が中国語であるために問題が発生します。記述されたクエリ ステートメントは SQLServe でレコードを返すことによってテストされ、PHP の MSSQL 拡張クエリを使用するとエラーが報告されます。
インターネット上の情報を調べましたが、オンライン上には関連情報があまりありません。PHP の MSSQL 拡張機能は SQL ステートメント内の漢字をサポートしていないと考えています。情報を確認すると、PHP の MSSQL は SQL 内の中国語ステートメントをサポートしています。エラー報告の問題のほとんどは、エンコードの問題が原因で発生します。エンコード データベースとエンコードが、SQL Server のクエリ ステートメントの中国語部分が文字化けし、クエリが失敗します。

2. 解決策:

原因がわかったので、分析して解決し、一貫性のないコーディングの問題であることを確認します。解決策は次の手順に分かれています。
1. SQLServer データベースのエンコーディングが GBK であることを確認します。
2. 現在の PHP スクリプト ファイルのエンコードが UTF-8 であることを確認します。
3. SQL クエリ ステートメントのエンコーディングを変換します。
補足: 一部のネチズンは、データベースのエンコーディングと一致するように PHP スクリプト ファイルのエンコーディングを変換する必要があると述べています。その理由は、実際には、この手順は必要ありません。 PHP スクリプト ファイルに他の PHP スクリプトが含まれている場合は、すべての include または require スクリプト ファイルのエンコーディングも変換する必要があります。そうしないと、PHP スクリプトのエンコーディングが統一されず、エラーが発生しやすくなります。相互に関連するファイルが多数あると、これも非常に面倒で問題が複雑になります。

3 番目の計画:

SQL を操作する前に、SQL ステートメントのエンコーディングを変換する変換関数を作成します。私のサンプルコードは以下に掲載されています:

コードをコピー コードは次のとおりです:

//エンコード変換関数
function utf8togb($s) {
return iconv('utf-8', 'gbk/ /IGNORE ', $s); //変換できない文字が見つかった場合、IGNORE パラメーターは無視されます
}
//次の操作とエンコード変換やその他の問題を容易にするために、すべての中国語フィールドを英語のエイリアスに置き換えることをお勧めします
$sql="SELECT [ id]、[column] を typeid、[topic] をタイトル、[author] を著者、convert(text, [text]) FROM [記事テーブル];"; ($sql);

http://www.bkjia.com/PHPjc/326035.html

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/326035.html技術記事 1. 質問: データベースは MS SQLServer2000 です。SQLServer2000 のテーブルのデータを MySQL5 にインポートする必要があります。SQLServer2000 テーブルのフィールド名は簡体字中国語で付けられています (中国語を使用しないことを強くお勧めします)。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。