2010-10-20 8 views
1

J'ai une requête qui est exécutée sur une base de données mssql et je n'utilise pas de pilotes PDO. Y a-t-il quelque chose comme une déclaration préparée que je peux utiliser?PHP & SQL: Meilleure façon de protéger cette requête contre les injections SQL N'utilise pas PDO

Voici la requête:

$tsql = "INSERT INTO cplinktable (liferayid, bmsid, autotaskid, waspdb, cpid) VALUES ($liferayid, $bmsid, $autotaskid, '$waspdb', $cpid)"; 

grâce,

Jonesy

+2

Vous pouvez trouver [cette réponse précédente] (http: // stackoverflow. com/questions/574805/how-to-escape-chaînes-in-mssql-using-php) utile. –

Répondre

-3

Essayez Préparer les états avec sprint()

$tsql = "INSERT INTO cplinktable (liferayid, bmsid, autotaskid, waspdb, cpid) VALUES (%d, %d, %d, '%s', %d)"; 

$tsql = sprintf($tsql, $liferayid, $bmsid, $autotaskid, $waspdb, $cpid); 
echo $tsql; // you would execute this but printing to the screen to show the query 
0
$query = sprintf("INSERT INTO cplinktable (liferayid, bmsid, autotaskid, waspdb, cpid) VALUES ('%s','%s','%s','%s','%s')", 
      mysql_real_escape_string($liferavid), 
      mysql_real_escape_string($bmsid), 
      mysql_real_escape_string($autotaskid), 
      mysql_real_escape_string($waspdb), 
      mysql_real_escape_string($cpid)); 
0

est aussi simple que useing mysql_real_escape sur les chaînes et transtypage sur chiffres/ints/double

(int)$number; //Safe 
(double)$double; //Safe 
mysql_real_escape_string($string); //Safe 

Cette utilisé sur chaque élément de données que vous insérez dans y notre base de données sera en sécurité

Questions connexes