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
?
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
?
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?
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 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.