以下のコードを使用して Mysql データベースにアラビア語を挿入できません。phpMyAdmin を使用して値を確認すると、フィールドが空になります。どうしてこんなことに?
$query = "INSERT INTO table (name) VALUES ('عماد')";
mysql_query($query);
name
フィールドは同時にutf8である必要があります 例のinsertステートメントのような他のクエリを実行する前に、mysqlに接続した直後にこのクエリを使用してください
set names 'utf8'
次にphpmyadminの出力を確認してください。正しいはずです
フィールドが次のようname
collation
に設定されていることを確認してください: 'utf8_unicode_ci'
PHPMyAdmin で
この行を使用してください .... u は特殊文字を挿入できます。
mysql_real_escape_string($query);
/**
* ALTER TABLE `myTable` CHARACTER SET utf8 COLLATE utf8_general_ci;
*
* There’s a generic way of doing by simply executing the MySQL query:
* SET NAMES utf8;
*
* ...and depending on which client/driver you’re using
* there are helper functions to do this more easily instead:
*/
// With the built in mysql functions
mysql_set_charset('utf8');
// With MySQLi
$mysqli->set_charset("utf8")
// With PDO_MySQL (as you connect)
$pdo = new PDO(
'mysql:host=localhost;dbname=test',
'username',
'password',
array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8")
);