MySQL データベースに中国語の文字を挿入しようとすると、文字セット エンコードの不一致により問題が発生する場合があります。この問題を解決するには、次の手順に従います。
データベース テーブルを作成するときは、文字セットを UTF-8 として指定します:
<code class="sql">CREATE TABLE table_name ( ... ) CHARACTER SET = utf8;</code>
テーブルに中国語の文字を挿入する場合は、フィールドの文字セットを UTF-8 として指定します。
<code class="sql">ALTER TABLE table_name MODIFY COLUMN field_name VARCHAR(255) CHARACTER SET utf8;</code>
<code class="sql">ALTER DATABASE dbname CHARACTER SET = utf8; ALTER TABLE table_name DEFAULT CHARACTER SET = utf8;</code>
<code class="sql">SET CHARACTER SET utf8;</code>
<code class="sql">SET NAMES 'utf8';</code>
<code class="php">mysql_set_charset('utf8', $link);</code>
関連記事:
追加リソース:
問題の解決方法を示す詳細なコード サンプルは次のとおりです。
<code class="php"><?php $servername = "localhost"; $username = "root"; $password = ""; $dbname = "test"; // Create connection $conn = new mysqli($servername, $username, $password, $dbname); // Set connection character set to UTF-8 $conn->set_charset("utf8"); // Create database and table with UTF-8 encoding $conn->query("CREATE DATABASE IF NOT EXISTS mydb CHARACTER SET utf8"); $conn->query("CREATE TABLE IF NOT EXISTS mydb.mytable (id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(255) CHARACTER SET utf8)"); // Insert Chinese characters into the table $sql = "INSERT INTO mydb.mytable (name) VALUES (?)"; $stmt = $conn->prepare($sql); $stmt->bind_param("s", $name); $name = "你好"; $stmt->execute(); // Close connection $stmt->close(); $conn->close(); ?></code>
以上がMySQL への漢字の挿入の問題を解決するには?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。