An error is reported when an expression is inserted into mysql. mysql inserts table information.
Today, I made a function to get fans and found that an error is returned when I insert a nickname into the database. The length must be enough.
Incorrect string value: '\xF0\x9F\x98\x84\xF0\x9F
Find some information found that the UTF-8 encoding may be two, three, four bytes. Emoji expressions or some special characters are 4 bytes, while Mysql utf8 can encode up to 3 bytes, so data cannot be inserted.
All online solutions
Modify mysql configurations
1. Find my. ini in the mysql installation directory and make the following changes:
[Mysqld]
Character-set-server = utf8mb4
[Mysql]
Default-character-set = utf8mb4
2 restart
Net stop mysql
Net start mysql
3. modify a table
Alter table name convert to character set utf8mb4 COLLATE utf8mb4_bin;
I only fixed the problem in step 3 and now recorded it.
An error occurred while inserting mysql statements.
Mysql_select_db ($ dbname );
<? Php
Require ('conn. inc. php ');
$ Dbname = "mydb ";//
Mysql_select_db ($ dbname); // select the database, which must be executed
$ Name = "soundbbg ";
$ Password = md5 ("0123456 ");
$ SQL = "INSERT INTO admin ('$ name') VALUES (' $ password ')";
// SQL statement. For mysql, enclose the field name in reverse quotation marks instead of single quotation marks ('$ name'
$ Result = mysql_query ($ SQL );
If ($ result)
{
Echo "success! ";
}
Else
{
Echo "wrong! ";
}
Echo "$ SQL"
?>
An error is returned when an insert statement is executed in mysql.
This is a problem with the "mysql. proc" system table.
You have to use mysql_upgrade to check whether it can be solved.
Find out your mysql parameter basedir (which is assumed to be xxx-including the path name), and then execute the following:
Mysql_upgrade-uroot-p password -- basedir = xxx