Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP]Dodawanie rekordów do dwóch tabel jednocześnie
benio0o
post 28.10.2012, 22:13:52
Post #1





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 13.02.2012

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


Witam,

Otóż tworzę stronę z formularzem rejestracyjnym. Jeśli przejdzie walidacje, ma się dodać rekord do dwóch tabel - do jednej o nazwie users ma się dodać login, pass, email itd, oraz do users_act ma się dodać id, z w/w users oraz kod aktywacyjny. Służyć będzie to tym, żeby sprawdzić czy użytkownik aktywował swoje konto(jeśli macie jakiś łatwiejszy, i lepszy sposób na sprawdzenie tego - jestem otwarty). Oto fragment kodu:
  1. $query = "START TRANSACTION;
  2. INSERT INTO users(id, login, pass, email)
  3. VALUES(NULL, '{$_POST['login']}', '{$_POST['pass1']}', '{$_POST['mail1']}');
  4. INSERT INTO users_act(act_code, id)
  5. VALUES ('{$act_code}', LAST_INSERT_ID());
  6. COMMIT;";
  7. mysql_query($query);

Po wypisanie w/w $query za pomocą echa widze:
  1. START TRANSACTION; INSERT INTO users(id, login, pass, email) VALUES(NULL, '2', '2', '2'); INSERT INTO users_act(id, act_code) VALUES (LAST_INSERT_ID(), '18b74347595599c34d1aa96edbe6a029'); COMMIT;

Które to, po wpisaniu na phpmyadmin działa poprawnie, a na stronie zwraca błąd:
  1. 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 'INSERT INTO users(id, login, pass, email) VALUES(NULL, '2', '2', '2'); ' at line 2

Czytam dokumentacje, czytam błąd, cały czas próbuje coś zmienić i dalej nie mam zielonego pojęcia co jest źle(zważywszy że się wykonuje na phpmyadmin, ale przez php juz nie).
Korzystam z XAMPP.
Pozdrawiam.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
l0ud
post 28.10.2012, 22:18:47
Post #2





Grupa: Zarejestrowani
Postów: 1 387
Pomógł: 273
Dołączył: 18.02.2008

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


Jedno mysql_query to maksymalnie jedno zapytanie. Rozdziel to na kilka wywołań tej funkcji.


--------------------
XMPP: l0ud@chrome.pl
Go to the top of the page
+Quote Post
XP'ek
post 28.10.2012, 23:19:22
Post #3





Grupa: Zarejestrowani
Postów: 263
Pomógł: 9
Dołączył: 3.05.2009
Skąd: Wroc

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


Kod
$query = "INSERT INTO users(id, login, pass, email) VALUES (NULL, '{$_POST['login']}', '{$_POST['pass1']}', '{$_POST['mail1']}');";
$guery = mysql_query($query);

$query1 = "INSERT INTO users_act(act_code, id) VALUES ('{$act_code}', LAST_INSERT_ID());";
$query1 = mysql_query($query1);
Go to the top of the page
+Quote Post
benio0o
post 29.10.2012, 11:21:29
Post #4





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 13.02.2012

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


Problem rozwiązany, wielkie dzięki za pomoc.
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 Wersja Lo-Fi Aktualny czas: 14.08.2025 - 03:27