2017-09-28 25 views
-3

我在这个错误,当我从其他PHP文件.csv文件上传数据手册,我的错误是: - “你有一个错误的SQL语法;请查看对应于您的MariaDB的服务器版本正确的语法附近使用手册“你的SQL语法有错误;检查对应于您MariaDB的服务器版本正确的语法使用近

function array_to_sql($queryData , $table , $multiple = true){ 

// Create connection 
$conn = new mysqli("localhost","root", "", "mydata"); 
// Check connection 
if ($conn->connect_error) { 
die("Connection failed: " . $conn->connect_error); 
} 

    //If multiple data 
else 
{ 
    foreach($queryData as $queryEntry) 
    { 
      if (count($queryEntry) > 0) { 
       foreach ($queryEntry as $key => $value) { 
        $value = "'$value'"; 
        $updates[] = "$key = $value"; 
       } 
      } 

      $implodeArray = implode(', ', $updates); 
     //print_r($updates); 
     $sql = "INSERT INTO `$table` (`".implode("` , `",array_keys($queryEntry))."`) VALUES('".implode("' , '",array_values($queryEntry))."') ON DUPLICATE KEY UPDATE $implodeArray"; 


     if ($conn->query($sql) === TRUE) { 
     echo "Request Updated"; 
     } else { 
      echo "Error: ". "<br>" . $conn->error . $sql; 
     } 
    }     
    }  
} 
?> 

回答

0

您的CSV字段包含空格,这是不允许的MySQL字段名。

你需要操纵$key或把它放在引号如

 if (count($queryEntry) > 0) { 
      foreach ($queryEntry as $key => $value) { 
       $key='`'.$key.'`'; 
       $value = "'$value'"; 
       $updates[] = "$key = $value"; 
      } 
     } 
+0

可以WIRTE呢? – Rijwandeltax

+0

我的问题解决了。 – Rijwandeltax

+0

不客气。如果它回答你的问题,请将其标记为正确答案,以便其他人知道 –

相关问题