fsgetcsv无法解析字段中带单引号的文件

时间:2013-02-21 12:34:39

标签: php sql parsing

我在使用fsgetcsv将文本文件导入数据库时​​遇到问题,问题源于一些字段,这些字段包含名称中带有单引号字符的名称(爱尔兰数据库),字段由^转义字符和那个位工作正常,但它基本上告诉我,当我的SQL语法到达带有'的字段时,我的错误。字符。

无论如何我可以解决这个问题吗?我尝试了各种转义字符组合,但无济于事。

使用PhpMyAdmin中的工具导入文件,并且使用以下术语不会产生任何问题:

字段终止字符:^ 字段封闭的字符:" 字段逃脱字符:\ 行终止于:auto

以下是违规行的示例:

4^01^Patrick O'Brien^account Number^7Address^client contact^sales contact^Validity Check on appointment and report to Receiver^21/01/13^^^^^^^^^^^02

这里是fsgetcsv语句

while (($data = fgetcsv($handle, 1000, "^" )) !== FALSE) {

1 个答案:

答案 0 :(得分:0)

构建SQL语句以将行插入数据库时​​,请确保正确转义fsgetcsv函数返回的值。您可以通过使用SQL参数(请参阅How can I prevent SQL injection in PHP?)或使用您正在使用的数据库的内置函数进行转义来执行此操作(请参阅http://www.php.net/manual/en/mysqli.real-escape-string.php)。