Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PDO] Problem z PDO
Forum PHP.pl > Forum > Przedszkole
Ryder
Hej

Mam problem przy wpisywaniu danych do bazy.

  1. $stmt = $pdo -> prepare("INSERT INTO ".$tabela[1]." (:login, pass, email, name, surname) VALUES (:login, :pass, :email, :name, :surname)");
  2.  
  3. $stmt->bindParam(':login', $_POST['login'], PDO::PARAM_STR, 255);
  4. $stmt->bindParam(':pass', sha1($_POST['pass']));
  5. $stmt->bindParam(':email', $_POST['email'], PDO::PARAM_STR, 255);
  6. $stmt->bindParam(':name', $_POST['name'], PDO::PARAM_STR, 255);
  7. $stmt->bindParam(':surname', $_POST['surname'], PDO::PARAM_STR, 255);
  8.  
  9. $stmt -> execute();
  10. print_r($stmt->errorInfo());


Błąd:
( [0] => 42000 [1] => 1064 [2] => 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 ''test1', pass,


Zapewne będzie to problem z cudzysłowami.
Ma ktoś pomył ja go rozwiązać.
nospor
za pierwszym razem nie :login a login
jmail
zamień to

  1.  
  2. $stmt = $pdo -> prepare("INSERT INTO ".$tabela[1]." (:login, pass, email, name, surname) VALUES (:login, :pass, :email, :name, :surname)");
  3.  


na to

  1.  
  2. $stmt = $pdo -> prepare("INSERT INTO ".$tabela[1]." (login, pass, email, name, surname) VALUES (:login, :pass, :email, :name, :surname)");
  3.  


poza tym to błąd z MySQL (komunikat nawet o tym mówi) a nie problem z PDO
Ryder
Jest jakiś sposób wyświetlania zapytania jaki idzie do bazy jak używa się execute();
nospor
raczej nie
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.