Ionut Stoica

Programator PHP / Frontend developer / Pasionat de Electronica Auto
19Nov

MySQL – Bad practices – Part 1

In ultimele zile observ pe Softpedia tot felul de subiecte legate de erori MySQL primite in scripturile php.Una dintre marile “probleme” intalnite este faptul ca de cele mai multe ori nu se foloseste mysql_real_escape_string.
Aceasta functie este una dintre cele mai utile functii in materie de securitatea aplicatiei, aceasta “rezolvand” majoritatea atacurilor de tip SQL injection.

O alta problema este ca nu se foloseste mysql_free_result. Aceasta functie are “umilul” rol de a elibera memoria folosita pentru a stoca rezultatele query-urilor imediat dupa terminarea executiei scriptului.

Cea de a 3-a problema observata este ca nu se verifica daca rezultatele query-ului chiar exista (daca exista rezultate sau este false). Astfel, “micul programator” intampina o groaza de warning-uri sau chiar fatal error in aplicatia.
Bad practice:

$Result = mysql_query('SELECT * FROM `table_name` LIMIT 0,30;');
while($row = mysql_fetch_object($Result)){
  echo $row->title . '<br>';
}

In acest caz, daca nu avem inregistrari in acel tabel vom obtine un frumos notice in bucla while.
Good practice:

$Result = mysql_query('SELECT * FROM `table_name` LIMIT 0,30;');
if($Result){
  while($row = mysql_fetch_object($Result)){
    echo $row->title . '<br>';
  }
}else {
  echo 'No results found.'; 
}

Sper ca va este de ajutor acest post. In caz ca aveti alte intrebari comentati si voi raspunde cu cea mai mare placere.

Comments(0)

Leave a comment

Your email address will not be published.Field is required

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

 Previous  All works Next