MySQL数据库不同插入

时间:2013-04-12 11:02:29

标签: php mysql phpmyadmin

从我的服务器,我创建并执行查询到我的数据库。查询如下所示:

INSERT INTO `table`(`attr`) 
VALUES (
  'myText',
  ...
);

插入工作正常,但当myText是(例如)字符时,它会插入€(ISO表示)。当我在phpMyAdmin中使用此字符执行查询时,可以使用。有人能告诉我问题在哪里吗?

注意:在PHP中,插入查询的myText - 因此在查询之前不会转换为ISO表示。

更新:我使用MySQL 5.5

更新2:我的桌子上有CHARSET=utf8 COLLATE=utf8_bin

5 个答案:

答案 0 :(得分:1)

在mysql连接之后,在任何查询之前,立即使用:

mysql_connect(...);
mysql_select_db(...);
mysql_query("SET NAMES 'utf8'");

从那时起,您可以使用查询,并且utf8字符将正确显示。

更新:

不要忘记在文档中添加<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

答案 1 :(得分:0)

也许你需要对字符串进行编码..

$myText = utf8_encode('MyText');

INSERT INTO `table`(`attr`) 
                      VALUES (
                      '$myText',
                      ...
                      );

答案 2 :(得分:0)

结帐charset charset documentation

collationstable

答案 3 :(得分:0)

默认情况下,您的MySql服务器不期望UTF8,首先运行以下查询

SET NAMES 'utf8';

答案 4 :(得分:0)

PhpMyAdmin可能已正确配置charset进行连接,但您的脚本没有。

请确保您有configured charset correctly例如语句:

SET CHARACTER SET 'UTF-8';
SET NAMES 'UTF-8';

在将任何内容推送到数据库之前(如果您使用latin1而不是UTF-8作为表格字符集,则应使用latin1)。