When attempting to insert Chinese characters into a MySQL database, you may encounter difficulties due to character set encoding mismatches. To resolve this problem, follow these steps:
When creating the database table, specify the character set as UTF-8:
<code class="sql">CREATE TABLE table_name ( ... ) CHARACTER SET = utf8;</code>
When inserting Chinese characters into a table, specify the field's character set as 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>
Related Articles:
Additional Resources:
Here is a detailed code sample that demonstrates how to resolve the issue:
<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>
The above is the detailed content of How to Solve the Issue of Inserting Chinese Characters into MySQL?. For more information, please follow other related articles on the PHP Chinese website!