PHP问题“插入”错误查询或某物

时间:2018-09-13 08:04:12

标签: php sql mariadb

我有一个PHP课程,我必须从excel中提取记录并将其添加到数据库中,但是我有一个问题,由于

我无法添加它们
  

错误:您的SQL语法有错误;检查手册   对应于您的MariaDB服务器版本,以使用正确的语法   靠近''pracownicy''('Id','Nazwisko iimię','Płeć','Dział','Wiek',   在第1行上INSERT INTO'pracownicy'('Id','Nazwisko iimię','Płeć',   “Dział”,“ Wiek”,“ Miasto”,“Stażpracy”)值(默认值,“ Czarnota”   Mariusz”,“ M”,“ DZ004”,“ 31”,“KOŁOBRZEG”,“ 8”)

我不知道问题出在哪里,我在代码中的查询都很好,而且一切似乎都很好。

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <title>Page Title</title>
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <script src="main.js"></script>
</head>
<body>

    <?php

        $link = mysql_connect('localhost', 'root', 'root') or die("Not connected to database");
        echo 'Połączono z MySQL... <br>';
        $tabela = mysql_select_db('firma', $link) or die ('Not connected to table');
        echo 'Połączono z bazą... <br>';

        $dane = file('dane.csv');
        $tmp = array();

        for($i = 1; $i <= count($dane)-1; $i+=1) {
            $schowek = $dane[$i];
            $schowek = explode(';', $schowek);

            for($j = 0; $j <= count($schowek)-1; $j+=1) {
                $tmp[$j] = trim($schowek[$j]);
                #echo "'" . $tmp[$j] . "'" . "<br>";
            }

            $sql = "INSERT INTO 'pracownicy' ('Id', 'Nazwisko i imię', 'Płeć', 'Dział', 'Wiek', 'Miasto', 'Staż pracy')
            VALUES (DEFAULT, '$tmp[1]', '$tmp[2]', '$tmp[3]', '$tmp[4]', '$tmp[5]', '$tmp[6]')";
            if(mysql_query($sql)) {
                echo "Dodano rekord";
            } else {
                echo "ERROR: " . mysql_error($link) . '<br>' . $sql . "<br><br>";
            }     
        }
    ?>

</body>
</html>

数据库:

enter image description here

3 个答案:

答案 0 :(得分:1)

请参见下面的查询,并用PHP代码替换您的SQL查询。

$sql = "INSERT INTO pracownicy (Nazwisko i imię,Płeć,Dział,Wiek,Miasto,Staż pracy)
            VALUES ('$tmp[1]', '$tmp[2]', '$tmp[3]', '$tmp[4]', '$tmp[5]', '$tmp[6]')";

PHPmyadmin中使用的代码和删除变量将这样的值放置

$sql = "INSERT INTO pracownicy ('Nazwisko i imię','Płeć','Dział,Wiek','Miasto','Staż pracy')
                VALUES ('tmp1', 'tmp2', 'tmp3', 'tmp4', 'tmp5', 'tmp6')";

答案 1 :(得分:0)

尝试:

  1. 从查询中删除id参数
  2. 表名中的引号
  3. 然后在列名中将`替换为`

INSERT INTO pracownicy ('Nazwisko i imię', 'Płeć', 'Dział', 'Wiek', 'Miasto', 'Staż pracy') VALUES ('Czarnota Mariusz', 'M', 'DZ004', '31', 'KOŁOBRZEG', '8');

答案 2 :(得分:0)

从表名,列名中删除单引号并删除id参数,这也是因为它是自动递增的id,因此不需要手动发送。

 $sql = "INSERT INTO pracownicy (Nazwisko i imię,Płeć,Dział,Wiek,Miasto,Staż pracy)
            VALUES ('$tmp[1]', '$tmp[2]', '$tmp[3]', '$tmp[4]', '$tmp[5]', '$tmp[6]')";