0

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

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

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

字段终止字符:^ 字段封闭字符:“字段转义字符:\ 行终止于:自动

这是违规行的示例:

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) {
4

1 回答 1

0

当您构建 SQL 语句以将行插入数据库时​​,请确保 fsgetcsv 函数返回的值已正确转义。您可以通过使用 SQL 参数(请参阅如何防止 PHP 中的 SQL 注入?)或使用您正在使用的数据库的内置函数进行转义(请参阅http://www.php.net/manual/en/ mysqli.real-escape-string.php)。

于 2013-02-21T12:47:52.367 回答