发布MySQL,PHP和CSV

时间:2018-02-21 11:56:18

标签: php mysql csv

我在使用MySQL和PHP时遇到了一些问题。

我从CSV加载数据并将其写入数据库。不幸的是,变音符号显示不正确,因此例如,ü以u00fc的形式写入数据库。

我使用MySQL,因为在建立MySQL连接后,我执行以下命令

mysql_set_charset('UTF8', $newsystem);
mysql_query("SET CHARACTER SET 'UTF8'", $newsystem);

排序规则设置为utf8_general_ci。

要输入数据,使用json_encode转换数据。

数组创建如下:

$jsonOrderDaten = array('id' => $daten[11], 'bezeichnung' => $daten[12], 'stueckzahl' =>$daten[14], 'preis' => $daten[15], 'mwst_satz' => $daten[16]);

Und der MySQL Eintrag erfolgt so:

$insertquery = "INSERT INTO `e_paket` (`paket_id`, `ebay_verkaufsnr`, `adress_daten`, `bestell_daten`, `ebay_order`, `status`) VALUES ('$packid', '$ebayorderid', '$jsonKD', '$jsonOD', 1, 0)";

mysql_query($insertquery ,$newsystem);

有人可以帮我解决我的问题吗?

祝你好运, 帕斯卡

3 个答案:

答案 0 :(得分:0)

这里的问题是JSON编码。所有特殊的unicode字符都被转义(例如德语变音符号)。

要解决此问题,您可以在编码方法上设置JSON_UNESCAPED_UNICODE标志,如下所示:

$jsonOD = json_encode($jsonOrderDaten ,JSON_UNESCAPED_UNICODE);

请注意,您应该注意SQL注入!

答案 1 :(得分:0)

我认为使用" LOAD DATA LOCAL INFILE"会解决你的问题。它比正常插入更快。有关详细信息,请https://dev.mysql.com/doc/refman/5.7/en/load-data.html

答案 2 :(得分:0)

你也可以mysql_query ("SET NAMES UTF8");

此外,不仅连接具有字符编码,而且数据库,表和每列都有自己的默认编码。检查它们是否设置为不同的东西。

Mysqli,注入,prepared_statements,其他人已经评论过它们。