PHP проблема с "вставить в" неправильный запрос или STH - PullRequest
0 голосов
/ 13 сентября 2018

У меня есть урок PHP, и мне нужно извлечь записи из Excel и добавить их в базу данных, но у меня есть проблема, что я не могу добавить их из-за

ОШИБКА: у вас естьошибка в вашем синтаксисе SQL;проверьте руководство, соответствующее вашей версии сервера MariaDB, чтобы найти правильный синтаксис для использования рядом с '' pracownicy '(' Id ',' Nazwisko i imię ',' Płeć ',' Dział ',' Wiek ',' в строке 1 INSERT INTO'pracownicy' ('Id', 'Nazwisko i imię', '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 голосов
/ 13 сентября 2018

Пожалуйста, посмотрите ниже запрос и замените им свой SQL-запрос в PHP-коде.

$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 delete variable, поместите значение, подобное этому

$sql = "INSERT INTO pracownicy ('Nazwisko i imię','Płeć','Dział,Wiek','Miasto','Staż pracy')
                VALUES ('tmp1', 'tmp2', 'tmp3', 'tmp4', 'tmp5', 'tmp6')";
0 голосов
/ 13 сентября 2018

Удаляйте одинарные кавычки из имени таблицы, имени столбца и параметра 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]')";
0 голосов
/ 13 сентября 2018

try:

  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');

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...