137 votes

AOP ' s requête vs exécutent

Ils font tous deux la même chose, ne sont différemment ?

Y a-t-il une différence en plus d’utiliser `` entre

et

?

154voto

Gilean Points 6455

query exécute un standard de l'instruction SQL et vous oblige à sortir correctement toutes les données pour éviter les Injections SQL et d'autres questions.

execute exécute une requête préparée qui permet de lier les paramètres d'éviter le besoin de s'échapper ou de citer les paramètres. execute sera meilleur si vous répétez une requête plusieurs fois. Exemple de déclarations préparées à l'avance:

$sth = $dbh->prepare('SELECT name, colour, calories FROM fruit
    WHERE calories < :calories AND colour = :colour');
$sth->bindParam(':calories', $calories);
$sth->bindParam(':colour', $colour);
$sth->execute();
// $calories or $color do not need to be escaped or quoted since the
//    data is separated from the query

La meilleure pratique est de s'en tenir à des déclarations préparées et execute pour plus de sécurité.

Voir aussi: AOP Sont préparées suffisante pour empêcher l'injection SQL?

51voto

netcoder Points 31874

Non, ils ne sont pas les mêmes. En dehors de la échapper sur le côté client qu'il fournit, une instruction préparée est compilé sur le serveur une fois, et puis peut-être passé des paramètres différents à chaque exécution. Ce qui signifie que vous pouvez faire:

$sth = $db->prepare("SELECT * FROM table WHERE foo = ?");
$sth->execute(array(1));
$results = $stmt->fetchAll(PDO::FETCH_ASSOC);

$sth->execute(array(2));
$results = $stmt->fetchAll(PDO::FETCH_ASSOC);

Ils seront généralement vous donner une amélioration de la performance, bien que n'étant pas perceptible sur une petite échelle. Lire plus sur les instructions préparées (version de MySQL).

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X