Maison >développement back-end >tutoriel php >Comment puis-je échapper en toute sécurité les chaînes dans les requêtes SQL Server à l'aide de PHP ?
Échapper des chaînes dans SQL Server à l'aide de PHP : un guide complet
Lorsque vous travaillez avec SQL Server à l'aide de PHP, il est crucial de protéger vos données contre Attaques par injection SQL en échappant correctement les chaînes. Il s'agit d'une technique permettant d'empêcher que des entrées malveillantes soient interprétées comme des commandes SQL.
Alternative à mysql_real_escape_string()
Contrairement à MySQL, SQL Server ne fournit pas de fonction intégrée fonction équivalente à mysql_real_escape_string().
Entrée addslashes()
addslashes() est une fonction PHP qui est souvent considérée comme une alternative potentielle à l'échappement de chaîne. Cependant, il est important de noter que addlashes() n'est pas entièrement adapté à une utilisation avec les bases de données SQL Server.
Une solution plus robuste
La solution idéale est d'encoder manuellement les données sous forme de chaîne d'octets hexadécimale. Voici un extrait de code pour vous guider :
$unpacked = unpack('H*hex', $data); mssql_query(' INSERT INTO sometable (somecolumn) VALUES (0x' . $unpacked['hex'] . ') ');
Abstraction pour l'échappement réutilisable
Pour simplifier et réutiliser le processus d'échappement, vous pouvez créer une fonction personnalisée comme celle-ci :
function mssql_escape($data) { if(is_numeric($data)) return $data; $unpacked = unpack('H*hex', $data); return '0x' . $unpacked['hex']; } mssql_query(' INSERT INTO sometable (somecolumn) VALUES (' . mssql_escape($somevalue) . ') ');
Alternative à mysql_error()
Pour la gestion des erreurs, SQL Server fournit mssql_get_last_message() comme alternative à mysql_error().
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!