Heim  >  Artikel  >  Backend-Entwicklung  >  Wenn PHP zum Einfügen chinesischer Daten in die MySQL-Datenbank verwendet wird, zeigt die Datenbank verstümmelte Zeichen an

Wenn PHP zum Einfügen chinesischer Daten in die MySQL-Datenbank verwendet wird, zeigt die Datenbank verstümmelte Zeichen an

WBOY
WBOYOriginal
2016-09-12 17:44:411244Durchsuche

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>

Wenn PHP zum Einfügen chinesischer Daten in die MySQL-Datenbank verwendet wird, zeigt die Datenbank verstümmelte Zeichen an

Wenn PHP zum Einfügen chinesischer Daten in die MySQL-Datenbank verwendet wird, zeigt die Datenbank verstümmelte Zeichen an

3. Könnten Sie mir bitte helfen, herauszufinden, wo das Problem liegt?

Antwortinhalt:

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>

Wenn PHP zum Einfügen chinesischer Daten in die MySQL-Datenbank verwendet wird, zeigt die Datenbank verstümmelte Zeichen an

Wenn PHP zum Einfügen chinesischer Daten in die MySQL-Datenbank verwendet wird, zeigt die Datenbank verstümmelte Zeichen an

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

  • sind
  • Stellen Sie sicher, dass der Zeichensatz beim Herstellen einer Verbindung zur Datenbank utf-8

  • ist
  • Stellen Sie sicher, dass die Programmdatei utf-8

  • ist
  • Stellen Sie sicher, dass die Konfigurationsdatei des MySQL-Installationsprogramms die Zeichen utf-8

  • festlegt

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 >Wenn PHP zum Einfügen chinesischer Daten in die MySQL-Datenbank verwendet wird, zeigt die Datenbank verstümmelte Zeichen an

Wenn PHP zum Einfügen chinesischer Daten in die MySQL-Datenbank verwendet wird, zeigt die Datenbank verstümmelte Zeichen an

Verwenden Sie Show-Variablen wie „character_set_%;“, um die Zeichenkodierung anzuzeigen, nachdem Sie die INI-Datei wie unten gezeigt geändert haben


Wenn PHP zum Einfügen chinesischer Daten in die MySQL-Datenbank verwendet wird, zeigt die Datenbank verstümmelte Zeichen an

Sie müssen die MySQL-Codierung festlegen und SQL „Set Names UTF8“ ausführen

Versuchen Sie, den Zeichensatz festzulegen

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn