代码之家  ›  专栏  ›  技术社区  ›  Rijwandeltax

您的SQL语法有错误;查看与您的MariaDB服务器版本对应的手册,以获取可在附近使用的正确语法

  •  -3
  • Rijwandeltax  · 技术社区  · 7 年前

    当我从上传数据时,我在这方面有错误。csv文件,我的错误是:- 您的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;
            }
        }                 
      }     
    }
    ?>
    
    1 回复  |  直到 7 年前
        1
  •  0
  •   Jacques Amar    7 年前

    CSV字段包含空格,MySQL字段名不允许使用空格。

    $key 或者按原样加引号

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