Heim > Artikel > Backend-Entwicklung > Wenn PHP zum Einfügen chinesischer Daten in die MySQL-Datenbank verwendet wird, zeigt die Datenbank verstümmelte Zeichen an
1. Ich habe PHP-Code geschrieben, um einen Feldwert mit chinesischen Zeichen in die MySQL-Datenbank einzufügen. Beim Anzeigen in phpMyadmin werden verstümmelte Zeichen angezeigt, und beim Anzeigen in der MySQL-Konsole habe ich auch die Sortierregel für jedes Feld geändert zu uft8_general_ci. Die direkte Einfügung in phpmyadmin wird normal angezeigt, und die direkte Einfügung in die MySQL-Konsole wird ebenfalls normal angezeigt, aber es ist nicht normal, wenn sie über PHP eingefügt wird -8") im PHP-Code. ;
<code><?php header("Content-Type:text/html;charset=utf-8"); if($con=mysqli_connect('localhost','root','')){ echo '连接成功'; } else{ echo '连接失败'; } if(mysqli_select_db($con,"test")){ echo '选择数据库成功'; } else{ echo '选择数据库失败'; } $str="insert into students(name,age)values('周杰伦','23')"; if(mysqli_query($con,$str)){ echo '插入成功'; } else{ echo '插入失败'; } mysqli_close($con);//关闭数据库 ?></code>
3. Könnten Sie mir bitte helfen, herauszufinden, wo das Problem liegt?
1. Ich habe PHP-Code geschrieben, um einen Feldwert mit chinesischen Zeichen in die MySQL-Datenbank einzufügen. Beim Anzeigen in phpMyadmin werden verstümmelte Zeichen angezeigt, und beim Anzeigen in der MySQL-Konsole habe ich auch die Sortierregel für jedes Feld geändert zu uft8_general_ci. Die direkte Einfügung in phpmyadmin wird normal angezeigt, und die direkte Einfügung in die MySQL-Konsole wird ebenfalls normal angezeigt, aber es ist nicht normal, wenn sie über PHP eingefügt wird -8") im PHP-Code. ;
<code><?php header("Content-Type:text/html;charset=utf-8"); if($con=mysqli_connect('localhost','root','')){ echo '连接成功'; } else{ echo '连接失败'; } if(mysqli_select_db($con,"test")){ echo '选择数据库成功'; } else{ echo '选择数据库失败'; } $str="insert into students(name,age)values('周杰伦','23')"; if(mysqli_query($con,$str)){ echo '插入成功'; } else{ echo '插入失败'; } mysqli_close($con);//关闭数据库 ?></code>
3. Könnten Sie mir bitte helfen, herauszufinden, wo das Problem liegt?
Überprüfen Sie, ob Ihre Datenbanktabelle normale chinesische Zeichen enthält, und versuchen Sie dann, das Problem beim Einfügen von Daten zu lösen. Unicode-Format:
Stellen Sie sicher, dass alle Datenbank-, Tabellen- und Feldeinstellungen utf-8
Stellen Sie sicher, dass der Zeichensatz beim Herstellen einer Verbindung zur Datenbank utf-8
Stellen Sie sicher, dass die Programmdatei utf-8
Stellen Sie sicher, dass die Konfigurationsdatei des MySQL-Installationsprogramms die Zeichen utf-8
Ich habe den Schlüssel zum Problem gefunden, aber es hat nicht funktioniert. Das Problem war, dass in der mysql.ini-Konfiguration ein Satz von default-character-set = utf8 fehlte Wird nach der Installation von wampserver verwendet, enthält die von der Software selbst installierte MySQL-Datei diesen Satz nicht. Wenn Sie diesen Satz hinzufügen, kann er nicht zufällig an der in meinem Bild angegebenen Stelle hinzugefügt werden >
Verwenden Sie Show-Variablen wie „character_set_%;“, um die Zeichenkodierung anzuzeigen, nachdem Sie die INI-Datei wie unten gezeigt geändert haben
Sie müssen die MySQL-Codierung festlegen und SQL „Set Names UTF8“ ausführen
Versuchen Sie, den Zeichensatz festzulegen