Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [mysqli] Zapytanie prepare
Forum PHP.pl > Forum > Przedszkole
vadergb
Witam,


Mam maly problem, a mianowicie:

Pobieram dane uzytowknika:

  1. $sql_login = $this->mysqli->prepare ( "SELECT user_id,nick,country,sex FROM users WHERE user_id=? limit 1" );
  2.  
  3. $sql_login->bind_param ( "i", $id );
  4. $sql_login->execute ();
  5. $sql_login->bind_result ( $user_id,$nick,$country,$sex );
  6. $data = $sql_login->fetch ();


Potem moge je odczytac za pomoca echo $user_id;

Chcialbym zrobic to tak:


  1. $sql_login = $this->mysqli->query( "SELECT user_id,nick,country,sex FROM users WHERE user_id=$id limit 1" );
  2.  
  3. $data = $sql_login->fetch_object();

Tzn. Zeby pobieralo mi dane do obieku ktory potem odczytam $data->user_id;

Szukalem i nie moglem znalezc metody aby bylo bezpiecznie(dodanie id za pomoca prepare - wyklucza ataka sql_injection).

Wiadomo mozna przed zapytaniem robic:
$id=(int)$id;
czy
$id=intval($id);


Pytanie czy tworzac takie zapytanie powinnismy robic prepare czy normalne query?

Prepare w takim wypadku powinno byc uzywane do czego?
Fifi209
Wystarczy rzutować na int jak sam pokazałeś. winksmiley.jpg
Spełni to Twoje oczekiwania i będzie bezpieczne.

A prepare do stringów bardziej.
vadergb
Cytat(fifi209 @ 19.08.2009, 13:57:00 ) *
Wystarczy rzutować na int jak sam pokazałeś. winksmiley.jpg
Spełni to Twoje oczekiwania i będzie bezpieczne.

A prepare do stringów bardziej.


hmm czyli prepare stosowac do updatow w bazie i insertow?

+ ew. w opcji szukania(np szukamy po nicku)?

a co w przypadku jak np mamy http://domena.pl/Jan_Kowalski

Jan_kowalski to string i robi on za alias uzytkownika.

Wtedy stosowac prepare czy robic to sa pomoca mysql_real_escape_string?


Jeszcze jedno sprawa mnie meczy:

W przypadku odczytywania loginu i hasla z bazy przy logowaniu uzywac prepare czy 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.