Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Wysyłanie INSERT do bazy danych.
Forum PHP.pl > Forum > Bazy danych > MySQL
Grafnastyk
Witam, z pewnością temat wałkowany już miliony razy, aczkolwiek nic podobnego do mojego problemu na forum nie znalazłem, google też nie pomogło, nic nie działało. Chce wysłać rekordy do bazy danych

to mój plik php:

  1. <?php
  2.  
  3. $connection = mysql_connect('localhost', 'root', '') or die ('nie udalo sie polaczyc z serverem'.mysql_error()); // Połączenie z serwerem
  4. $db = mysql_select_db('maromail', $connection) or die ('nie udalo sie polaczyc z baza danych'.mysql_error()); //Połączenie z bazą
  5.  
  6. $first_name = $_POST['firstname'];
  7. $last_name = $_POST['lastname'];
  8. $when_it_happened = $_POST['whenithappened'];
  9. $how_long = $_POST['howlong'];
  10. $how_many = $_POST['howmany'];
  11. $alien_description = $_POST['aliendescription'];
  12. $what_they_did = $_POST['whattheydid'];
  13. $other = $_POST['other'];
  14. $email = $_POST['email'];
  15. echo 'Dziekujemy za przeslanie formularza.<br />';
  16.  
  17.  
  18.  
  19. $dane = mysql_query("INSERT INTO aliens_abduction (first_name, last_name, when_it_happened, how_long, how_many, alien_description, what_they_did, fang_spotted, other, email)
  20. VALUES ("$first_name", '$last_name', '$when_it_happened', '$how_long', '$how_many', '$alien_description', '$what_they_did', '$other', '$email')"); // wysłanie rekordów do bazy rekordów z bazy
  21. var_dump($dane);
  22. mysql_query($connection, $db) or die ('Błąd w zapytaniu do bazy');
  23.  
  24.  
  25. ?>

Po wysłaniu formularza pojawia się taki błąd : Parse error: syntax error, unexpected '$first_name' (T_VARIABLE) in C:\xampp\htdocs\cwiczenia\mail.php on line 20

Próbowałem już dodać '.$first_name.' oraz '.{$first_name}.' jak również podwójny apostrof, dodawałem również apostrofy w zmiennej $dane i nic, nie działa nie mam pojęcia już co zrobić by udało mi się wysłać te dane do bazy. Czy jest tu ktoś kto mógłby mi w jakiś sposób pomóc? Uczę się php z książki, ale kod z niej też mi nie działa.
Pyton_000
Źle przepisujesz...

nie :"$first_name"
a '$first_name'
Grafnastyk
Jeśli jest pojedynczy apostrof to wyrzuca taki błąd:

Dziekujemy za przeslanie formularza.
bool(false)
Warning: mysql_query() expects parameter 1 to be string, resource given in C:\xampp\htdocs\cwiczenia\mail.php on line 22
Błąd w zapytaniu do bazy
Pyton_000
bo pewnie wkładasz dane z ', musisz je escapować. w MySQL robi się to przez ' czyli np: 'Twoje''s name' => 'Twoje 's name'
Grafnastyk
A mógłbyś trochę jaśniej ? Zajmuje się PHP aż od wczoraj no i nie bardzo Cię rozumiem co_jest.gif
viking
Używasz przestarzalego rozszerzenia i zezwalasz na atak sql injection. Zastosuj na danych funkcję mysql_real_escape_string. Obecnie nie dość ze jest dziurawy to wstawienie apostrofu wywali zapytanie.
Pyton_000
To radzę poszukaj innego kursu.

Tu masz przyzwoity kurs który nauczy Cię podstaw. Wywal tą swoją książkę do kosza albo spal co by nie kusiła więcej.

https://www.youtube.com/watch?v=WSeKPbVZBoo...JWXQbm2geG1V2uh
Grafnastyk
Tak nakazywała książka więc tym się kierowałem. Po zmianie mysql_query na mysql_real_escape_string wyskakuje mi błąd :
Dziekujemy za przeslanie formularza.
string(274) "INSERT INTO aliens_abduction (first_name, last_name, when_it_happened, how_long, how_many, alien_description, what_they_did, fang_spotted, other, email)\r\nVALUES (qwd, \'qwdqw\', \'qwdcqw\', \'cqcw\', \'qcwq\', \'wqc\', \'wqcwqc\', \'qwcqw\', \'kamil.lesniak94@gmail.com\')"
Warning: mysql_query() expects parameter 1 to be string, resource given in C:\xampp\htdocs\cwiczenia\mail.php on line 22
Błąd w zapytaniu do bazy

Więc, może ja zapytam inaczej, jak przebudować to zapytanie by wysłało dane na server ? Chciałbym mieć nowy przykład, by móc się w przyszłości na czymś wzorować i wiedzieć jak używać tej opcji, bo wiem, że jest podstawą w PHP.
viking
Wypadało by zajrzeć do dokumentacji. Masz tam przykłady jak to stosować. A nie bezmyślnie zastępować.
Pyton_000
Powiedziałem Ci już. Wywal to co masz do kosza (kod PHP) i książkę i zerknij w to co Ci wysłałem. mysql_* nie powinno się używać od kilku lat, ale dalej w sieci są stare tutoriale które dalej tego uczą.
Grafnastyk
Viking No cóż, jak mówię z php mam styczność od wczoraj, nie ogarniam tego tak samo jak Ty. Oglądnę sobie te poradniki co dostałem do nich link. Od czegoś trzeba zacząć, weź pod uwagę, że i Ty kiedyś swoją przygodę z php zaczynałeś.

Pyton_000 Książka na szczęście nie kupowana, choć teraz rozważam opcje czy by nie kupić właśnie z najnowszą wersją PHP. Poradnik z YT już odpalony i oglądam. No właśnie, ja dopiero zaczynam nie miałem pojęcia co i jak i właśnie książka wydawała mi się najlepszą opcją. Czy po tych tutorialach, da radę pociągnąć naukę PHP samemu ?
PS. Odstawiłem ją na bok smile.gif
viking
Zdaję sobie sprawę ale masz pełne przykłady użycia w dokumentacji. Najbardziej aktualne z masą komentarzy niżej. Nie ważne czy dalej będziesz czytał książki czy poradniki na yt, manual jest zawsze podstawą . jest w nim też wielki czerwony komunikat dlaczego nie używać mysql. w stopce mam też artykuł o pdo ale nie liczę że po dniu z php będziesz wiedział co robić.
Grafnastyk
Podglądam poradniki to i zerknę w dokumentacje oczywiście ale najpierw chce zobaczyć co jest do czego i z czym to się je, by dokumentację zrozumieć i wykorzystać w praktyce. Bo mówiąc szczerze otwierając dokumentację teraz i patrząc na to zagadnienie, to niewiele rozumiem z tego kodu, który tam sie znajduje.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.