gpt4 book ai didi

php - 为什么MySql多次查询会导致语法错误,而单独查询却可以成功?

转载 作者:行者123 更新时间:2023-11-29 11:38:26 26 4
gpt4 key购买 nike

我正在尝试使用以下代码从 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 服务器版本相对应的手册,了解在第 1 行“LOAD DATA INFILE '/wamp/www/mytools/tablecreate/tables/subjects.csv' INTO TABL”附近使用的正确语法

你的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;

I added the above line just to debug it and to see the actual contents of $loadsql, Can't understand why a copy paste of the following sql in phpmyadmin works perfectly.

更新

尝试通过注释掉其中一个来单独执行这两个语句。一次一个,它们都工作得很好,问题是它们不能一起工作。

只是一个想法

在多个查询中,如果一个成功而下一个失败,那么$result会返回什么?

最佳答案

要在一次调用中执行多个查询,请使用 mysqli_multi_query() 。虽然从文档中并不完全清楚,但是 mysqli_query() 一次只能执行一个查询。

关于php - 为什么MySql多次查询会导致语法错误,而单独查询却可以成功?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36240283/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com