php - 使用 csv 文件更新 mysql 表。我需要调试器

标签 php mysql file debugging csv

我试图允许某人通过上传编辑后的文件来使用 csv 中的内容更新表“调查”。但每次我提交文件时都会收到此错误:

您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,了解在 '(Record_ID=Record ID, Agreement= 'Agreement (Q2)', 附近使用的正确语法1(Q_1)= '1 (Q1_1)',`3 (Q'位于第 1 行

我的查询有问题,我无法弄清楚。

    <?php 

//connect to the database
$connect = mysql_connect("localhost","root","");
mysql_select_db("genydb",$connect); //select the table
//
if (isset($_FILES['csv'])){
if ($_FILES['csv']['size'] > 0) {

    //get the csv file
    $file = $_FILES["csv"]['tmp_name'];
    $handle = fopen($file,"r");

    //loop through the csv file and insert into database
  while ($data = fgetcsv($handle,0,",","'")){

 mysql_query("UPDATE `survey` SET(`Record_ID`='".addslashes($data[0])."', `Agreement`= '".addslashes($data[1])."',`1(Q_1)`= '".addslashes($data[2])."', `3 (Q4)`='".addslashes($data[3])."', `2 (Q3)`='".addslashes($data[4])."', `4 (Q5)`='".addslashes($data[5])."', `5 (Q6)`='".addslashes($data[6])."', `7 (Q8)`='".addslashes($data[7])."', `6 (Q7)`='".addslashes($data[8])."', `8 (Q9)`='".addslashes($data[9])."', `9 (Q10)`='".addslashes($data[10])."', `10 (Q11)`='".addslashes($data[11])."', `11 (Q12)`='".addslashes($data[12])."', `13 (Q14_1)`= '".addslashes($data[13])."'")or die(mysql_error()); 

    }
    //

    //redirect
    header('Location: imports.php?success=1'); die;

}

}

?>

<!DOCTYPE html>
<head>

<title>Import a CSV File with PHP & MySQL</title>
</head>

<body>

<?php if (!empty($_GET['success'])) { echo "<b>Your file has been imported.</b><br><br>"; } //generic success notice ?>

<form action="" method="post" enctype="multipart/form-data" ">
  Choose your file: <br />
  <input type="file"  name="csv" id="csv" />
  <input type="submit" name="Submit" value="Submit" />
</form>

</body> 
</html>

最佳答案

这里不必使用(。它在括号中单独存在。

     mysql_query("UPDATE `survey` SET(`Record_ID`='".addslashes($....
                                     ^^----------here

替换为

    mysql_query("UPDATE `survey` SET `Record_ID`='".addslashes($....

另外:建议在mysql查询中插入变量之前使用mysql_real_escape_string

AND :建议使用 MYSQLIPDO 而不是 mysql,因为它已被弃用。

关于php - 使用 csv 文件更新 mysql 表。我需要调试器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17756460/

相关文章:

php - 如果数据库值等于 1,则将类添加到 img

javascript - 如何使用Javascript将复选框数组保存在MySQL数据库中

mysql - 如何为 JPA View 实体传递动态限制值?

python - python 文件对象的大小和 seek()

javascript - 大的外部 JSON 文件还是小的 JSON 文件?

来自数据库的 PHPUnit dataProvider

javascript - 不允许使用 Codeigniter/PHP(405 错误)在 jQuery Blueimp FileUpload 上删除方法?

java - 优化匹配2个巨大文本文件的java代码

php - 如何将句子转换为单词数组?

php - 从另一个表 php 的值中对值进行排序