Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] Proste zapytanie mysql
Forum PHP.pl > Forum > Przedszkole
klapaucius
Podczas wywołanai następującego zapytania do bazy danych mysql:
  1. $zapytanie = $baza->query("INSERT INTO klienci VALUES (null, '".$login."', sha1('".$haslo."'), '".$email."', now()") or die($baza->error);

otrzymuję komunikat:
Kod
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1


Może mi ktoś powiedzieć gdzie w owym zapytaniu zrobiłem błąd?

P.S.

Tam gdzie jest wartość null jest pole ID o polu auto_increment
Dominator
  1. $zapytanie = $baza->query("INSERT INTO klienci VALUES (null, ".$login.", sha1(".$haslo."), ".$email.", now()") or die($baza->error);
szalek01
Kod
$zapytanie = $baza->query("INSERT INTO klienci VALUES (null, ".$login.", sha1(".$haslo."), ".$email.", now())") or die($baza->error);


Kod
<?php
$login = 'cosiek';
$haslo = '123';
$email = 'tets@tet.pl';
$s = "INSERT INTO klienci VALUES (null, ".$login.", sha1(".$haslo."), ".$email.", now())";
echo $s;
?>


by uniknąć takich błędów sprawdzaj swoje zapytania, jaką postać przyjmują po podaniu parametrów
viking
Kod
$dbh->prepare('INSERT INTO klienci VALUES (null, ?, ?, ?, now())');

I prawda że problem znika? To czemu ludzie męczą się z jakimiś wynalazkami gdzie nawet później poprawnie nie potrafią stringa złożyć?
szalek01
ale to jest PDO,a obserwuje ostatnio że ludze jakoś strasznie boją się PDO, może by zacząć jakiś ruch na formu, typi fu*k mysql_, love PDO smile.gif
klapaucius
Cytat(Dominator @ 1.10.2012, 19:38:10 ) *
  1. $zapytanie = $baza->query("INSERT INTO klienci VALUES (null, ".$login.", sha1(".$haslo."), ".$email.", now()") or die($baza->error);

Teraz otrzymuję nastomiast taki komunikat:
Kod
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '@gmail.com, now()' at line 1

"@gmail.com" jest to fragment emaila przekazywanego w zmiennej $email. Dlaczego tak jest? nigdy nie miałem tak dziwnego problemu..?
szalek01
now())")
abort
1. Rozbij to na
  1. $q = "INSERT [..............]";
  2. $zapytanie = $baza->$query ($q);


2. Na forum podaj zawartość zmiennej $q.

3. Może się przydać struktura tabeli (describe klienci)

P.S.
Naprawdę tak trudno w kodzie wyodrębnić sobie treść zapytania do stringa i wypluć to na ekran? Już nawet w tym wątku zwracano Ci na to uwagę.
viking
Cytat(szalek01 @ 1.10.2012, 20:12:25 ) *
ale to jest PDO,a obserwuje ostatnio że ludze jakoś strasznie boją się PDO, może by zacząć jakiś ruch na formu, typi fu*k mysql_, love PDO smile.gif

Dokumentacja PHP jasno to mówi. Ale kto by tam ją czytał. Lepiej mieć problemy ciągle, takie jak w tym wątku wink.gif
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.