Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] Proszę o sprawdzenie składni
Forum PHP.pl > Forum > Przedszkole
JanMatuszak
Witam, mam taki o to kod:
  1.  
  2. $dane = 'INSERT INTO oferty(id_klient, instalacja_adres, instalacja_kod, instalacja_miasto, typ_nieruchomości, rozdzielczosc_kamer, kamery_zo_kop, kamery_zo_tub, kamery_so_kop, kamery_so_tub, puszki_ded, elewacja, korytka, zasilanie, ups, punkt_dostepowy, rejestrator_miejsce, zapis, switch, kabel, materialy_montazowe, dojazd, dojazd_km, plik_wyceny, uwagi, wartosc_netto_wyceny, kontakt) VALUES ($idklient, $adres_instalacji, $kod_instalacji, $miasto_instalacji, $typ_nieruchomosci, $rozdzielczosc, $il_kop_zo, $il_tub_zo, $il_kop_so, $il_tub_so, $puszki, $elewacja, $korytka, $zasilanie, $ups, $router, $rejestrator_przechowywanie, $zapis, $poe, $kabel, $materialy_montazowe, $dojazd, $kilometrowka, $nazwa_pliku, $uwagi, "",$kontakt)';
  3.  
  4.  
  5. $wynik = $conn->query($dane);
  6.  


Gdzie jest błąd?
SmokAnalog
Zrób sobie echo $dane; i sam zobaczysz smile.gif
JanMatuszak
No dobrze, zrobiłem i już wiem, że nie pobieram danych ze zmiennych, ale jeśli dostrzelę "uszy" to niestety sypie błędami.
SmokAnalog
Tak - sypie, bo nie masz apostrofów w zapytaniu. Zobacz sobie jak wygląda prawidłowe zapytanie INSERT.

Pomijam póki co fakt, że wrzucanie ze zmiennych wartości do zapytania w taki sposób prosi się o problemy. Ale to trochę później.
Tomplus
Ja pomogę precyzyjniej:

  1. $str = "world";
  2. echo 'Hello $str !'; //Hello $str !
  3. echo "Hello $str !"; //Hello world !


Widzisz różnicę?

Co do samego zapytania, to tak jak mówi SmokAnalog, prosisz się o SQLInjection.
JanMatuszak
Zrobiłem tak:

  1. $dane = "INSERT INTO oferty ("id_klient", "instalacja_adres", "instalacja_kod", "instalacja_miasto", "typ_nieruchomości", "rozdzielczosc_kamer", "kamery_zo_kop", "kamery_zo_tub", "kamery_so_kop", "kamery_so_tub", "puszki_ded", "elewacja", "korytka", "zasilanie", "ups", "punkt_dostepowy", "rejestrator_miejsce", "zapis", "switch", "kabel", "materialy_montazowe", "dojazd", dojazd_km, plik_wyceny, uwagi, wartosc_netto_wyceny, kontakt) VALUES ("$idklient", "$adres_instalacji", "$kod_instalacji", "$miasto_instalacji", "$typ_nieruchomosci", "$rozdzielczosc", "$il_kop_zo", "$il_tub_zo", "$il_kop_so", "$il_tub_so", "$puszki", "$elewacja", "$korytka", "$zasilanie", "$ups", "$router", "$rejestrator_przechowywanie", "$zapis", "$poe", "$kabel", "$materialy_montazowe", "$dojazd", "$kilometrowka", "$nazwa_pliku", "$uwagi", "","$kontakt")";


Odpowiedź w przeglądarce:
( ! ) Parse error: syntax error, unexpected 'id_klient' (T_STRING) in C:\wamp64\www\OfertaMaker\zapisz_dane.php on line 75

Zmieniłem na:
  1. $dane = "INSERT INTO 'oferty' (id_klient, instalacja_adres, instalacja_kod, instalacja_miasto, typ_nieruchomości, rozdzielczosc_kamer, kamery_zo_kop, kamery_zo_tub, kamery_so_kop, kamery_so_tub, puszki_ded, elewacja, korytka, zasilanie, ups, punkt_dostepowy, rejestrator_miejsce, zapis, switch, kabel, materialy_montazowe, dojazd, dojazd_km, plik_wyceny, uwagi, wartosc_netto_wyceny, kontakt) VALUES ($idklient, $adres_instalacji, $kod_instalacji, $miasto_instalacji, $typ_nieruchomosci, $rozdzielczosc, $il_kop_zo, $il_tub_zo, $il_kop_so, $il_tub_so, $puszki, $elewacja, $korytka, $zasilanie, $ups, $router, $rejestrator_przechowywanie, $zapis, $poe, $kabel, $materialy_montazowe, $dojazd, $kilometrowka, $nazwa_pliku, $uwagi, ,$kontakt)";

i zapytanie robi się ładne, ale..... nie zapisuje się do bazy smile.gif
SmokAnalog
Przeczytaj jeszcze raz ten wątek.
JanMatuszak
Zadziałało. Już rozkminiłem smile.gif Dziękuję za pomoc
SmokAnalog
To super. Ale pamiętaj, że to nie koniec pracy z zapytaniami. W obecnej formie, jeśli którakolwiek wpisywana do bazy wartość będzie zawierała cudzysłów, rozwalisz zapytanie. Wartości przekazywane do zapytania powinno się wstawiać za pomocą parametrów. Poczytaj: https://www.w3bai.com/pl/php/php_mysql_prep...statements.html
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.