繁体   English   中英

通过csv文件更新MySQL中的表

[英]Update table in MySQL by csv file

我必须更新表cscart_products通过csv文件output.csv

我创建了一个临时表( your_temp_table )并使用命令INNER JOIN更新了cscart_products表( product_codeamount )。

执行以下代码时,MySQL报告此错误:

用户更新失败:您的SQL语法出错; 查看与您的MySQL服务器版本对应的手册,以便在第6行的'UPDATE cscart_products INNER JOIN your_temp_table on your_temp_table.amount = cs'附近使用正确的语法

有错误吗? SQL语法错了吗?

<?php
$sql = "LOAD DATA INFILE 'output.csv'
       INTO TABLE your_temp_table
       FIELDS TERMINATED BY ','
    (product_code, amount);

UPDATE cscart_products
INNER JOIN your_temp_table on your_temp_table.amount = cscart_products.amount
SET cscart_products.product_code = your_temp_table.product_code;";

$con=mysqli_connect("localhost","xxx","xxxx","xxxx");
// Check connection
if (mysqli_connect_error()) {
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
};

$result = mysqli_query($con, $sql);

if (mysqli_affected_rows($con) == 1) {
  $message = "The data was successfully added!";
} else {
  $message = "The user update failed: ";
  $message .= mysqli_error($con); 
};

echo $message;
mysqli_close($con);
?>

在mysqli中,它们应该作为两个查询执行

$sql = "LOAD DATA INFILE 'output.csv'
       INTO TABLE your_temp_table
       FIELDS TERMINATED BY ','
    (product_code, amount)";

$sql2 = "UPDATE cscart_products
INNER JOIN your_temp_table on your_temp_table.amount = cscart_products.amount
SET cscart_products.product_code = your_temp_table.product_code";


$result = mysqli_query($con, $sql);
$result = mysqli_query($con, $sql2); 

或者,您必须使用multi_query

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM