Mysql
 sql >> Database >  >> RDS >> Mysql

Se utilizzare SET NAMES

mysql_set_charset() sarebbe un'opzione, ma un'opzione limitata a ext/mysql . Per ext/mysqli è mysqli_set_charset e per PDO ::mysql devi specificare un parametro di connessione.

Poiché l'utilizzo di questa funzione comporta una chiamata all'API MySQL, dovrebbe essere considerata molto più veloce dell'emissione di una query.

Per quanto riguarda le prestazioni, il modo più veloce per garantire una comunicazione basata su UTF-8 tra lo script e il server MySQL è configurare correttamente il server MySQL. Come SET NAMES x è equivalente a

SET character_set_client = x;
SET character_set_results = x;
SET character_set_connection = x;

mentre SET character_set_connection = x internamente esegue anche SET collation_connection = <<default_collation_of_character_set_x>> puoi anche impostare queste variabili del server staticamente nel tuo my.ini/cnf .

Tieni presente i possibili problemi con altre applicazioni in esecuzione sulla stessa istanza del server MySQL e che richiedono un altro set di caratteri.