我正试图用以下代码从csv加载数据。
$loadsql = 'delete from tablecreate where table_name='''.$tablename.''';
LOAD DATA INFILE ''/wamp/www/mytools/tablecreate/tables/'.$tablename.'.csv''
INTO TABLE tablecreate
FIELDS TERMINATED BY '',''
LINES TERMINATED BY ''''r''n''
IGNORE 2 LINES;';
$result = mysqli_query($con, $loadsql);
if (!$result) {
echo "sorry!! data could not be loaded!".mysqli_error($con)."<br>" ;
echo "your sql is following<br>".$loadsql;
}
else {
echo "<br>"."data loaded successfully."."<br>" ;
}
当我在phpmyadmin上运行此操作时,查询工作正常。但是当我在浏览器中运行上面的php代码时,输出如下:
您的SQL语法有错误;在第1行的"LOAD DATA INFILE"/wamp/www/mytools/tablecreate/tables/subjects.csv"INTO TABL"附近,请查看与MySQL服务器版本对应的手册,以获得要使用的正确语法
您的sql正在遵循
delete from tablecreate where table_name='subjects';
LOAD DATA INFILE '/wamp/www/mytools/tablecreate/tables/subjects.csv'
INTO TABLE tablecreate FIELDS TERMINATED BY ','
LINES TERMINATED BY ''r'n' IGNORE 2 LINES;
我添加上面的行只是为了调试它并查看
$loadsql
的实际内容,不明白为什么在phpmyadmin中复制粘贴以下sql可以完美地工作。
更新
尝试通过注释掉其中任何一个语句来分别执行这两个语句。一次一个,他们两个都很好,问题是他们不能一起工作。
只是一个想法
在多个查询中,如果一个成功,下一个失败,那么$result
会返回什么?