Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [SQL][PHP] Problem z zapytaniem do bazy
Forum PHP.pl > Forum > Przedszkole
Miszazdw
  1. $query = 'INSERT INTO USERS (USERNAME, PASSWORD, ' .
  2. 'EMAIL_ADDR, IMIE, NAZWISKO, PESEL, TEL_DOM, TEL_KOM, ' .
  3. 'REGON, NIP, ULICA, NR_DOMU, KOD_POCZTOWY, MIASTO, NAZWA_FIRMY' .
  4. 'IS_ACTIVE) '.
  5. 'VALUES (mysql_real_escape_string($this->username, $GLOBALS[\'DB\']), '.
  6. 'mysql_real_escape_string($this->password, $GLOBALS[\'DB\']), '.
  7. 'mysql_real_escape_string($this->emailAddr, $GLOBALS[\'DB\']),'.
  8. 'mysql_real_escape_string($this->imie, $GLOBALS[\'DB\']), '.
  9. 'mysql_real_escape_string($this->nazwisko, $GLOBALS[\'DB\']),'.
  10. 'mysql_real_escape_string($this->pesel, $GLOBALS[\'DB\']),'.
  11. 'mysql_real_escape_string($this->tel_dom, $GLOBALS[\'DB\']),'.
  12. 'mysql_real_escape_string($this->tel_kom, $GLOBALS[\'DB\']),'.
  13. 'mysql_real_escape_string($this->regon, $GLOBALS[\'DB\']),'.
  14. 'mysql_real_escape_string($this->nip, $GLOBALS[\'DB\']),'.
  15. 'mysql_real_escape_string($this->ulica, $GLOBALS[\'DB\']),'.
  16. 'mysql_real_escape_string($this->nr_domu, $GLOBALS[\'DB\']),'.
  17. 'mysql_real_escape_string($this->kod_pocztowy, $GLOBALS[\'DB\']),'.
  18. 'mysql_real_escape_string($this->miasto, $GLOBALS[\'DB\']),'.
  19. 'mysql_real_escape_string($this->nazwa_firmy, $GLOBALS[\'DB\']),'.
  20. '$this->isActive)';


tak wyglada zapytanie
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 '>username, $GLOBALS['DB']), mysql_real_escape_string($this->password, $GLOBALS['' at line 1You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '>username, $GLOBALS['DB']), mysql_real_escape_string($this->password, $GLOBALS['' at line 1


a taki mam blad.

Oczekuję pomocy.

Pozdrawiam.
Fifi209
Łączenie zmiennych ze stringiem?

  1.  
  2. $zmienna = 'tekst';
  3.  
  4. echo 'Tu jest jakiś string w tym wypadku zapytanie, i robisz tak: "'.$zmienna. '" i tutaj dalej';
  5.  


Rozumiesz?
TrevorGryffits
PHP nie interpretuje tekstu w apostrofach, tylko przekazuje go "jak leci".
Miszazdw
Cytat(fifi209 @ 10.08.2009, 21:07:44 ) *
Łączenie zmiennych ze stringiem?

  1.  
  2. $zmienna = 'tekst';
  3.  
  4. echo 'Tu jest jakiś string w tym wypadku zapytanie, i robisz tak: "'.$zmienna. '" i tutaj dalej';
  5.  


Rozumiesz?


  1. 'VALUES (mysql_real_escape_string('".$this->username."', $GLOBALS[\'DB\']), '.


Chyba jednak nie rozumiem...
Fifi209
nie ' " tylko " '
erix
string
Miszazdw
Przerobiłem zapytanie z użyciem sprintf()

  1. $query = sprintf('INSERT INTO USERS (USERNAME, PASSWORD, ' .
  2. 'EMAIL_ADDR, IMIE, NAZWISKO, PESEL, TEL_DOM, TEL_KOM, ' .
  3. 'REGON, NIP, ULICA, NR_DOMU, KOD_POCZTOWY, MIASTO, NAZWA_FIRMY' .
  4. 'IS_ACTIVE) VALUES ("%s", "%s", "%s", "%s", "%s", %d, %d, %d, %d, "%s", "%s", "%s", "$s", "$s", "$s", %d)',
  5. mysql_real_escape_string($this->username, $GLOBALS['DB']),
  6. mysql_real_escape_string($this->password, $GLOBALS['DB']),
  7. mysql_real_escape_string($this->emailAddr, $GLOBALS['DB']),
  8. mysql_real_escape_string($this->imie, $GLOBALS['DB']),
  9. mysql_real_escape_string($this->nazwisko, $GLOBALS['DB']),
  10. mysql_real_escape_string($this->pesel, $GLOBALS['DB']),
  11. mysql_real_escape_string($this->tel_dom, $GLOBALS['DB']),
  12. mysql_real_escape_string($this->tel_kom, $GLOBALS['DB']),
  13. mysql_real_escape_string($this->regon, $GLOBALS['DB']),
  14. mysql_real_escape_string($this->nip, $GLOBALS['DB']),
  15. mysql_real_escape_string($this->ulica, $GLOBALS['DB']),
  16. mysql_real_escape_string($this->nr_domu, $GLOBALS['DB']),
  17. mysql_real_escape_string($this->kod_pocztowy, $GLOBALS['DB']),
  18. mysql_real_escape_string($this->miasto, $GLOBALS['DB']),
  19. mysql_real_escape_string($this->nazwa_firmy, $GLOBALS['DB']),
  20. $this->isActive);


i sql wywala ze nie zgadza się ilość kolumn z wprowadzanymi danymi.

Kod
Column count doesn't match value count at row 1
TrevorGryffits
Nie powinno być %s zamiast $s w kilku ostatnich parametrach? Dane, które wsadzasz jako inty wystarczy jak zrzutujesz na (int).
Miszazdw
Zrobiłem tak - poprawiełem:
  1. $query = sprintf('INSERT INTO USERS (USERNAME, PASSWORD, ' .
  2. 'EMAIL_ADDR, IMIE, NAZWISKO, PESEL, TEL_DOM, TEL_KOM, ' .
  3. 'REGON, NIP, ULICA, NR_DOMU, KOD_POCZTOWY, MIASTO, NAZWA_FIRMY' .
  4. 'IS_ACTIVE) VALUES (%s, %s, %s, %s, %s, %d, %d, %d, %d, %s, %s, %s, %s, %s, %s, %d)',
  5. mysql_real_escape_string($this->username, $GLOBALS['DB']),
  6. mysql_real_escape_string($this->password, $GLOBALS['DB']),
  7. mysql_real_escape_string($this->emailAddr, $GLOBALS['DB']),
  8. mysql_real_escape_string($this->imie, $GLOBALS['DB']),
  9. mysql_real_escape_string($this->nazwisko, $GLOBALS['DB']),
  10. mysql_real_escape_string($this->pesel, $GLOBALS['DB']),
  11. mysql_real_escape_string($this->tel_dom, $GLOBALS['DB']),
  12. mysql_real_escape_string($this->tel_kom, $GLOBALS['DB']),
  13. mysql_real_escape_string($this->regon, $GLOBALS['DB']),
  14. mysql_real_escape_string($this->nip, $GLOBALS['DB']),
  15. mysql_real_escape_string($this->ulica, $GLOBALS['DB']),
  16. mysql_real_escape_string($this->nr_domu, $GLOBALS['DB']),
  17. mysql_real_escape_string($this->kod_pocztowy, $GLOBALS['DB']),
  18. mysql_real_escape_string($this->miasto, $GLOBALS['DB']),
  19. mysql_real_escape_string($this->nazwa_firmy, $GLOBALS['DB']),
  20. $this->isActive);


i teraz error:
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 '@test.pl, test@test.pl, test, 2147483647, 111222333, 111222333, 0, , ulica, 30, ' at line 1
erix
A cudzysłowów nie łaska...? :/
Miszazdw
Cytat(erix @ 10.08.2009, 23:14:51 ) *
A cudzysłowów nie łaska...? :/

Czemu sądzisz że takie rozwiązanie jest złe, uzasadnij jak możesz.
Fifi209
Cytat(Miszazdw @ 10.08.2009, 22:18:52 ) *
Czemu sądzisz że takie rozwiązanie jest złe, uzasadnij jak możesz.


Ponieważ jeżeli podajesz stringa do bazy to musi być w cudzysłowach! Człowieku postawy! Kpisz sobie ze mnie i z Erix'a ?
Miszazdw
  1. $query = 'INSERT INTO USERS (USERNAME, PASSWORD, ' .
  2. 'EMAIL_ADDR, IMIE, NAZWISKO, PESEL, TEL_DOM, TEL_KOM, ' .
  3. 'ULICA, NR_DOMU, KOD_POCZTOWY, MIASTO,' .
  4. 'IS_ACTIVE) '.
  5. 'VALUES'.
  6. '('.
  7. 'mysql_real_escape_string("'.$this->username.'", $GLOBALS[\'DB\']), '.
  8. 'mysql_real_escape_string("'.$this->password.'", $GLOBALS[\'DB\']), '.
  9. 'mysql_real_escape_string("'.$this->emailAddr.'", $GLOBALS[\'DB\']),'.
  10. 'mysql_real_escape_string("'.$this->imie.'", $GLOBALS[\'DB\']), '.
  11. 'mysql_real_escape_string("'.$this->nazwisko.'", $GLOBALS[\'DB\']),'.
  12. 'mysql_real_escape_string("'.$this->pesel.'", $GLOBALS[\'DB\']),'.
  13. 'mysql_real_escape_string("'.$this->tel_dom.'", $GLOBALS[\'DB\']),'.
  14. 'mysql_real_escape_string("'.$this->tel_kom.'", $GLOBALS[\'DB\']),'.
  15. 'mysql_real_escape_string("'.$this->ulica.'", $GLOBALS[\'DB\']),'.
  16. 'mysql_real_escape_string("'.$this->nr_domu.'", $GLOBALS[\'DB\']),'.
  17. 'mysql_real_escape_string("'.$this->kod_pocztowy.'", $GLOBALS[\'DB\']),'.
  18. 'mysql_real_escape_string("'.$this->miasto.'", $GLOBALS[\'DB\']),'.
  19. '"'.$this->isActive.'"'.
  20. ')';


Nadal lipa...
Fifi209
Nie czytasz uważnie...

Przykład:

  1.  
  2. $string = 'tekst';
  3.  
  4. $zmienna = 'INSERT INTO `tabela` VALUES("'.$string.'")';
  5.  


Nie wiem czego nie rozumiesz, moim zdaniem temat już dawno jest zakończony.
jmail
masz - a tak na przyszłość dobrze poczytać o bazie danych zanim się za nią weźmiesz.

  1.  
  2. $query = 'INSERT INTO
  3. USERS (
  4. USERNAME
  5. , PASSWORD
  6. , EMAIL_ADDR
  7. , IMIE
  8. , NAZWISKO
  9. , PESEL
  10. , TEL_DOM
  11. , TEL_KOM
  12. , ULICA
  13. , NR_DOMU
  14. , KOD_POCZTOWY
  15. , MIASTO
  16. , IS_ACTIVE
  17. )
  18. VALUES
  19. (
  20. \''.mysql_real_escape_string($this->username, $GLOBALS['DB']).'\'
  21. ,\''.mysql_real_escape_string($this->password, $GLOBALS['DB']).'\'
  22. ,\''.mysql_real_escape_string($this->emailAddr, $GLOBALS['DB']).'\'
  23. ,\''.mysql_real_escape_string($this->imie, $GLOBALS['DB']).'\'
  24. ,\''.mysql_real_escape_string($this->nazwisko, $GLOBALS['DB']).'\'
  25. ,\''.mysql_real_escape_string($this->pesel, $GLOBALS['DB']).'\'
  26. ,\''.mysql_real_escape_string($this->tel_dom, $GLOBALS['DB']).'\'
  27. ,\''.mysql_real_escape_string($this->tel_kom, $GLOBALS['DB']).'\'
  28. ,\''.mysql_real_escape_string($this->ulica, $GLOBALS['DB']).'\'
  29. ,\''.mysql_real_escape_string($this->nr_domu, $GLOBALS['DB']).'\'
  30. ,\''.mysql_real_escape_string($this->kod_pocztowy, $GLOBALS['DB']).'\'
  31. ,\''.mysql_real_escape_string($this->miasto, $GLOBALS['DB']).'\'
  32. ,\''..$this->isActive.'\'
  33. )';
  34.  
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.