Almost all PHP developers have encountered the problem of garbled characters. Below we mainly introduce the solution to garbled characters when connecting to the PHP MySQL database.
The problem of using UTF-8 encoding for MYSQL database
1. Use phpmyadmin to create the database and data table
When creating the database, please set "Organization" to: " utf8_general_ci" or execute the statement:
CREATE DATABASE `dbname` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
When creating a data table: If the field stores Chinese, you need to set "Organization" to: "utf8_general_ci", if the field stores English or numbers. , the default is fine.
Corresponding SQL statement, for example:
CREATE TABLE `test` ( `id` INT NOT NULL , `name` VARCHAR( 10 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL , PRIMARY KEY ( `id` ) ) ENGINE = MYISAM ;
2. Use PHP to read and write the database
After connecting to the database
$connection = mysqli_connect($host_name, $host_user, $host_pass);
Join:
mysqli_query("set character set 'utf8'");//读库 mysqli_query("set names 'utf8'");//写库
You can read and write the MYSQL database normally.
The environment created using appserv-win32-2.5.10 uses the default utf8 encoding when installing this package.
When writing the database connection file, write:
$conn = mysqli_connect("$host","$user","$password"); mysqli_query("SET NAMES 'UTF8'"); mysqli_select_db("$database",$conn);
Then when making the page, pay attention to this sentence:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
In this way, regardless of the Chinese input into the database, or the page display, It's all normal.
In the DW CS4 version, the utf8 page is also generated by default.
Similarly, if you write the database connection file at the beginning as:
mysqli_query("SET NAMES 'GBK'");
, then the page should also change accordingly:
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
The above content is for reference only!
Recommended tutorial: PHP video tutorial
The above is the detailed content of php writes garbled characters to the database. For more information, please follow other related articles on the PHP Chinese website!