我尝试使用以下代码从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语法有错误;查看与您的MySQL服务器版本相对应的手册,以便在“LOAD DATA INFILE&#39; /wamp/www/mytools/tablecreate/tables/subjects.csv'”附近使用正确的语法。 INTO TABL&#39;在第1行
你的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
会返回什么?