Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> mysql_real_escape_string a PDO
vegeta
post
Post #1





Grupa: Zarejestrowani
Postów: 122
Pomógł: 0
Dołączył: 9.11.2008

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


Witam.
Przerzucam projekt z MySQL na PDO (a później na całkowity OOP).
Czy istnieje funkcja w PDO wykonująca takie samo zadanie jak mysql_real_escape_string od MySQL?
Jeśli nie to czy mogę jej używać z PDO?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
vegeta
post
Post #2





Grupa: Zarejestrowani
Postów: 122
Pomógł: 0
Dołączył: 9.11.2008

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


Pre przy błędzie zwraca mi np.

Kod
Catchable fatal error: Object of class PDOStatement could not be converted to string
.

Jeśli rejestruję się prawidłowo to nic nie wyświetla echo $pre1 $pre2 i 3

Zrobiłem to tak:
  1. $login = $_POST['login'];
  2. (...)
  3. $pre1 = $pdo -> prepare('SELECT id FROM users WHERE login = ? COLLATE utf8_bin limit 1');
  4. $pre1 -> execute(array($login));
  5. $ile1 = $pre1 -> rowCount();
  6. if($ile1 > 0){ // jeśli login istnieje
  7. echo 'Obywatel o takim loginie już istnieje. <a href="rejestracja.php">Spróbuj ponownie.</a>';
  8. }



Cytat
Masz przecież PDO::quote() - jak byk w manualu wypisane. Tylko po co Ci to, skoro PDO umożliwia korzystanie z Prepared Statements?

quote() daje na początku i na końcu ciągu znaków apostrof. Prepare nie (przykład powyżej), ale nie daje również slashów przy apostrofach wpisanych z formularza i w bazie jest identyczny nick. Przykładowo: wpisuję teste'rek - w bazie mam teste'rek. Czy muszę napisać funkcję w preg_match, w której dam wszystkie dozwolone znaki do loginu (A-Z, a-z, 0-9, -, _) a loginy z innymi znakami wywalać i dać stosowny komunikat?
Go to the top of the page
+Quote Post

Posty w temacie


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: 6.10.2025 - 22:11