2009-07-29 5 views

Répondre

3

Oui parce que% d ne donne qu'un nombre, il n'est pas nécessaire d'échapper la chaîne. L'utilisation de guillemets simples permettrait également une amélioration de la vitesse. Donc, un moyen sûr et rapide est:

$sql = sprintf('INSERT IGNORE INTO my_table VALUES(%d, %d, 1, NOW())', $_SESSION['client']['id'], $_POST['id']); 
+1

Vous avez des références récentes pour votre réclamation sur des guillemets simples améliorant la vitesse dans ce cas? – Salaryman

+2

Pas de repères, mais c'est plus une question de bon sens. Avant d'envoyer la chaîne à sprintf - avec des guillemets doubles, l'interpréteur essaiera de rechercher des variables $ et d'autres séquences échappées. Les guillemets simples, ce ne sera pas. Bien que la différence de vitesse soit trop petite pour vraiment faire la différence. – jimyi

1

Il semble bien pour moi.

En fait, est-il nécessaire d'utiliser mysql_escape_string dans ce cas, puisque sprintf ("% d") ne peut aboutir qu'à un nombre?

Questions connexes