通过php在forma swe7中的Maria db上插入数据

时间:2015-08-22 13:23:06

标签: php mysql sql format mariadb

我在我的MariaDB中以swe7格式化了一个表的字段,以便从瑞典字母表中托管字符串。然而,当我尝试在我的PHP脚本中输入它们时,我收到错误:

  

错误INSERT INTO调色板(数字,地址,纬度,经度,时间戳)VALUES('7470618',“ÖstersundTallbacksvägen”,63.18874861617303,14.6445424430311,1440249233)ON DUPLICATE KEY UPDATE number ='7470618',address =“ÖstersundTallbacksvägen “,纬度= 63.18874861617303,经度= 14.6445424430311,时间戳= 1440249233错误:字符串值不正确:'\ xC3 \ x96ster ...'用于第1行的列'地址'

当我直接在DB上执行查询时,查询正确执行并插入行。所以我认为问题出在php脚本中,可能是字符串格式,但我不知道如何调整它。

感谢您的支持

2 个答案:

答案 0 :(得分:0)

C396Ö utf8 十六进制编码

您是否要使用swe7,因为您有这样编码的数据?

    从客户端连接到mysql时,
  • SET NAMES swe7(或等效的)。
  • 对于表格中的CHARACTER SET,您可以使用utf8或swe7。使用utf8,您可以处理其他语言。
  • 如果输出在网页上,请务必指定相应的<meta...charset>。 (我不知道在这种情况下如何拼写'swe7'。)

或者你还有其他原因需要swe7吗?

<强> Addeda

计划A:始终使用swe7 - SET NAMES,CHARACTER SET,html meta。

计划B:SET NAMES swe7和html元字符集的合适值,但表中为CHARACTER SET utf8

无论哪种方式,客户端都只会看到swe7编码。

答案 1 :(得分:0)

好的,解决方案是使用utf8并执行两个命令:

$mysqli->query("SET NAMES utf8");
mysqli_set_charset('utf8');

此时,sql表中的编码与utf8和swe7无关。

使用swe7执行此操作不起作用。