Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Zapytanie się nie wykonuje, chociaż mysql_query zwraca TRUE
hub3rt
post
Post #1





Grupa: Zarejestrowani
Postów: 126
Pomógł: 0
Dołączył: 19.09.2003
Skąd: Białystok

Ostrzeżenie: (10%)
X----


Oto przykład zapytania:
  1. $dod = "INSERT INTO s_users VALUES ('', '".$nick."', '".$pass."', '".$mail."', '".$klub."')";
  2. $spr = mysql_query($dod);


Zapytanie zwraca TRUE - sprawdziłem przez wyświetlenie wartosci zmiennej $spr (dobrze?), ale w bazie nic nie ma... wcześniej sprawdzam czy w bazie nie zdubluje się $nick albo $mail:

  1. $zap = "SELECT * FROM s_users WHERE nick=".$nick;
  2. $spr = mysql_query($zap);

W tym przypadku jeżeli $spr wynosi 1 to znaczy, że nick jest juz zajety i należy wybrać inny. Pomimo wcześniejszego udanego wykonania całego skryptu i teoretycznego umieszczenia zmiennej $nick o odpowiedniej wartosci po ponownej próbie wykonania skryptu nic się nie zmienia. Ten drugi fragment nadal ma wartość 0 a ponowne wykonanie INSERT'a nie napotyka zadnych problemów. Co jest źle?! I o co chodzi? Bo trudno jest mi to zrozumiec...
Go to the top of the page
+Quote Post
kociupk
post
Post #2





Grupa: Zarejestrowani
Postów: 97
Pomógł: 1
Dołączył: 29.03.2006

Ostrzeżenie: (0%)
-----


powinno byc tak
  1. $zap = "SELECT * FROM s_users WHERE nick='".$nick.'"";
  2. $spr = mysql_query($zap);
Go to the top of the page
+Quote Post
siemakuba
post
Post #3





Grupa: Przyjaciele php.pl
Postów: 1 112
Pomógł: 20
Dołączył: 10.04.2005

Ostrzeżenie: (0%)
-----


To, że funkcja mysql_query" title="Zobacz w manualu php" target="_manual zwraca true, oznacza tylko tyle, że mysql nie stwierdził błędów w składni zapytania. Absolutnie nie oznacza to, że zapytanie zadziałało tak jak chciałeś.

mysql_affected_rows" title="Zobacz w manualu php" target="_manual - pokaże ile danych zostało zmianionych/dodanych/usuniętych - używaj do sprawdzania wyników działania zapytań DELETE, INSERT, UPDATE

mysql_num_rows" title="Zobacz w manualu php" target="_manual - pokaże ile zostało znalezionych wyników - używaj do SELECT.

Spróbuj wykonać zapytanie bezpośrednio na bazie, np. przez PHPMyAdmin i zobacz jaki będzie wynik.

pozdr.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 04:37