Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP]Różnica między zapytaniami do MySQL przy użyciu PDO
Arhimenrius
post
Post #1





Grupa: Zarejestrowani
Postów: 115
Pomógł: 3
Dołączył: 19.04.2011

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


Witam. Mam problem z zapytaniem MySQL do dodawania rzeczy do bazy. Dałem 2 różne wersje.
1.
  1. $stmt = $db -> prepare("INSERT INTO `users` WHERE `UsName` = :name, `UsPassword` = :pass, `UsEmail` = :mail, `UsLv`= :lvl ");
  2. $stmt -> bindValue(':name', $login, PDO::PARAM_STR);
  3. $stmt -> bindValue(':pass', $pass, PDO::PARAM_STR);
  4. $stmt -> bindValue(':mail', $email, PDO::PARAM_STR);
  5. $stmt -> bindValue(':lvl', "2", PDO::PARAM_STR);
  6. $stmt -> execute();
  7. $stmt = closeCursor;

2.
  1. /*$stmt =$db ->prepare("INSERT INTO users (UsName, UsPassword, UsEmail, UsLv) VALUE (?,?,?,?)");
  2. $stmt -> execute(array($login, md5($pass.sha1($pass)), $email, "2"));
  3. $stmt = closeCursor;*/


Wie może ktoś czemu ta pierwsza wersja nie chce działać? Ja jakoś nie widzę problemu, a taka sama wersja jedynki działa jako logowanie...
Go to the top of the page
+Quote Post
by_ikar
post
Post #2





Grupa: Zarejestrowani
Postów: 1 798
Pomógł: 307
Dołączył: 13.05.2009
Skąd: Gubin/Wrocław

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


To jest forum głównie dla webmasterów, tutaj wróżbitów nie znajdziesz, nikt ci z fusów nie wywróży. No chyba że są tutaj tacy którzy pałają się wróżeniem, w co szczerze mówiąc wątpię. "Nie działa" jak mi ktoś coś takiego mówi, to mnie zawsze strzyka w kolanach. Po czym wnioskujesz że nie działa? Poleconym dostajesz informację że nie działa? Sory za ton, ale zasłużyłeś sobie wink.gif
Go to the top of the page
+Quote Post
Arhimenrius
post
Post #3





Grupa: Zarejestrowani
Postów: 115
Pomógł: 3
Dołączył: 19.04.2011

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


Masz rację, zapomniałem dać dowody że nie działa ^^ już daję wink.gif

Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[42000]: Syntax error or access violation: 1064 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 'WHERE `UsName` = 'Arhi', `UsPassword` = 'pies', `UsEmail` = 'szewczenko007@o2.pl' at line 1' in E:\AppServ\www\ebibliotekarz2\adduser.php:47 Stack trace: #0 E:\AppServ\www\ebibliotekarz2\adduser.php(47): PDOStatement->execute() #1 E:\AppServ\www\ebibliotekarz2\adduser.php(66): AddUser->AddTeacher('Arhi', 'pies', 'szewczenko007@o...') #2 {main} thrown in E:\AppServ\www\ebibliotekarz2\adduser.php on line 47
Go to the top of the page
+Quote Post
tomm
post
Post #4





Grupa: Zarejestrowani
Postów: 142
Pomógł: 28
Dołączył: 7.04.2008

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


bardzo dziwne zapytanie:
  1. INSERT INTO `tabela` WHERE `pole1` = wartosc1, `pole2` = wartosc2...

Chcesz wstawić wiersz który już istnieje i ma określone wartości?
zamiast WHERE uzyj SET
Go to the top of the page
+Quote Post
--Arhimenrius--
post
Post #5





Goście







chodziło bardziej o przecinki zamiast AND/OR w zapytaniu smile.gif ale też dzięki
Go to the top of the page
+Quote Post
peter13135
post
Post #6





Grupa: Zarejestrowani
Postów: 1 447
Pomógł: 191
Dołączył: 26.03.2008

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


No.. to po prostu jest błędne zapytanie, co widać gołym okiem ? Czego to nie rozumieć ? To tak jak z każdym innym językiem, nawet polskim czy angielskim. Ktoś se ustalił, że ma się mówić tak i tak, i każde odstępstwo może być traktowane jakie błąd językowy.


--------------------
:)
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 21.08.2025 - 10:53