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