2016-01-12 2 views
0

Это почти одно из моих первых случаев работы с MYSQL, и я не могу исправить эту ошибку, которую я продолжаю получать. Я пытаюсь хранить данные в таблице, которая имеет auto_increment на свой идентификатор (первый столбец). Ошибки я получаю это:Ошибка ввода MySQL

«У Вас есть ошибка в вашем синтаксисе SQL, проверьте руководство, которое соответствует Вашей версии сервера MySQL для правильного синтаксиса, чтобы использовать рядом с ASD„voorletters =“», tussenvoegsel = «», achternaam = «», roepnaam = «», Adres = «», 'в строке 1"

Я просто заполнил текстовые поля с немного Рубиш, нет столбцов, которые требуют данных либо , Вот код, который я использую:

if(isset($_POST['save'])) 
{ 
    $voorletters = $_POST['voorletters']; 
    $tussenvoegsel = $_POST['tussenvoegsel']; 
    $achternaam = $_POST['achternaam']; 
    $roepnaam = $_POST['roepnaam']; 
    $adres = $_POST['adres']; 
    $postcode = $_POST['postcode']; 
    $plaats = $_POST['plaats']; 
    $geslacht = $_POST['geslacht']; 
    $emailadres = $_POST['emailadres']; 
    $telefoonnummer = $_POST['telefoonnummer']; 
    $mobielenummer = $_POST['mobielenummer']; 
    $geboortedatum = $_POST['geboortedatum']; 
    $bsn = $_POST['bsn']; 

    mysql_query("INSERT INTO `naw` " 
      . "voorletters ='$voorletters', " 
      . "tussenvoegsel ='$tussenvoegsel', " 
      . "achternaam ='$achternaam', " 
      . "roepnaam ='$roepnaam', " 
      . "adres ='$adres', " 
      . "postcode ='$postcode', " 
      . "plaats ='$plaats', " 
      . "geslacht ='$geslacht', " 
      . "emailadres ='$emailadres', " 
      . "telefoonnummer ='$telefoonnummer', " 
      . "mobielenummer ='$mobielenummer', " 
      . "geboortedatum ='$geboortedatum', " 
      . "bsn ='$bsn' " 
      . "WHERE id = '$id'") 
      or die(mysql_error()); 

Если этого недостаточно, сообщите мне. Я пробовал много вещей, но я не могу понять это.

+0

RTM-х http://dev.mysql.com/doc/refman/5.7/en/insert.html и http://dev.mysql.com/doc/refman/5.7 /en/update.html –

+1

INSERT не использует WHERE. Либо удалите файл, либо измените его на UPDATE. –

+0

[Ваш скрипт подвержен риску инъекций SQL.] (Http://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in- php) –

ответ

5

Вы смешиваете insert и update синтаксис. Заменить

INSERT INTO `naw` voorletters ='$voorletters'... 

с

UPDATE `naw` set voorletters ='$voorletters'.... 

И вы действительно должны использовать Подготовленные заявления избежать синтаксических ошибок и инъекцию SQL из-за ввод данных пользователя.

+1

На самом деле MySQL имеет синтаксис 'INSERT ... SET' - в OP просто отсутствует ключевое слово' SET'. – eggyal

+0

Спасибо! «set» исправил это для меня^-^ –

0

Просто используйте следующий код. Убедитесь, что вы вставляете данные для каждого поля sequentially-

mysql_query("INSERT INTO `naw` VALUES(
      '".$voorletters."', 
      '".$tussenvoegsel."', 
      '".$achternaam."', 
      '".$roepnaam."', 
      '".$adres."', 
      '".$postcode."', 
      '".$plaats."', 
      '".$geslacht."', 
      '".$emailadres."', 
      '".$telefoonnummer."', 
      '".$mobielenummer."', 
      '".$geboortedatum."', 
      '".$bsn."')") 
      or die(mysql_error()); 
+0

Вставка не имеет условия WHERE' – genespos

0

У вас есть неправильный синтаксис

Синтаксис INSERT является

INSERT INTO `YourTableName`(`Field1`, `Field2`, `Field3`, `Field4) 
VALUES ('value-1','value-2','value-3','value-4') 

Синтаксис UPDATE является

UPDATE `YourTableName` 
SET `Field1`='value-1',`Field2`='value-2',`Field3`='value-3',`Field4`='value-4' 
WHERE YourConditions 
+0

На самом деле MySQL имеет синтаксис 'INSERT ... SET' - в OP просто отсутствует ключевое слово' SET'. – eggyal

0

Вы должны удалить `` вокруг naw, это нормально в phpmyadmin, но довольно беспорядочно почти везде. И вы не соедините каждую строку, сделайте это в одном «...» и используйте обратное пространство, чтобы сделать его более читаемым.

Итак:

mysql_query("INSERT INTO naw 
      VALUES('$voorletters', 
        '$tussenvoegsel', 
        ... , 
        WHERE id = '$id'");//you can't do that, maybe you should use an UPDATE 
+0

Будет ли он работать так же, как сейчас без кавычек? –

Смежные вопросы