PHP を MySQL に接続するときにコードが文字化けする問題を解決する方法
MySQL は一般的に使用されるリレーショナル データベース管理システムであり、PHP は一般的なサーバーサイド スクリプティングです。この 2 つは、Web サイトやアプリケーションの開発によく一緒に使用されます。 PHP を使用して MySQL データベースに接続すると、中国語データが文字化けするという問題が頻繁に発生し、開発者に問題をもたらします。この記事では、PHP から MySQL への接続時に文字化けする問題を解決する効果的な方法と、具体的なコード例を紹介します。
最初に、データベースとテーブルの文字セット設定が正しいことを確認します。データベースを作成するときは、utf8 や utf8mb4 などの適切な文字セットを選択する必要があります。テーブルを作成するときに、正しい文字セットと照合規則も指定します。例:
CREATE DATABASE my_database CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE TABLE my_table ( id INT AUTO_INCREMENT, name VARCHAR(50) CHARACTER SET utf8mb4, PRIMARY KEY (id) ) ENGINE=InnoDB CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
PHP が MySQL データベースに接続するときは、確実に文字セットを utf8mb4 に設定する必要があります。データの正しい保存と読み取り。次のステートメントをコードに追加して、データベースに接続できます。
$mysqli = new mysqli("localhost", "username", "password", "my_database"); $mysqli->set_charset("utf8mb4");
SQL クエリ ステートメントを実行する前に、文字セットを utf8mb4 に設定する必要もあります。クエリ ステートメントを実行する前に、次のステートメントを追加できます。
$mysqli->query("SET NAMES 'utf8mb4'");
PHP で中国語データを処理する場合、次のステートメントを作成する必要があります。必ず UTF-8 エンコーディングを使用してください。 UTF-8 エンコードは、データベースにデータを保存するとき、またはデータベースからデータを読み取るときに使用されます。例:
$name = "张三"; $name = utf8_encode($name); // 将字符串转换为 UTF-8 编码 $result = $mysqli->query("INSERT INTO my_table (name) VALUES ('$name')");
最後に、Web ページにデータを表示するときは、ページ エンコーディングも UTF-8 に設定する必要があります。中国語のデータが正しく表示されていることを確認します。次のコードを HTML ヘッダーに追加できます。
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
上記の方法により、PHP が MySQL データベースに接続するときに発生する中国語データの文字化けの問題を効果的に解決できます。正しい文字セット設定とエンコード仕様に従うことで、データの正しい保存、読み取り、表示を保証できます。上記の内容が皆様のお役に立てれば幸いです。
以上がPHP を MySQL に接続する際のコード化けの問題を解決する効果的な方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。