Mysql: que fait la fonction GetSQLValueString

loulou -  
 fandecarotte -
Bonjour, je ne suis pas familier avec les fonctions mysql et j'ai ce script sous la main que je voudrais comprendre
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "") 
{
  $theValue = (!get_magic_quotes_gpc()) ? addslashes($theValue) : $theValue;

  switch ($theType) {
    case "text":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;    
    case "long":
    case "int":
      $theValue = ($theValue != "") ? intval($theValue) : "NULL";
      break;
    case "double":
      $theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL";
      break;
    case "date":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;
    case "defined":
      $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
      break;
  }
  return $theValue;
}


Que fait la fonction GetSQLValueString ? Est ce une une fonction integré ?



3 réponses

briiiiix Messages postés 624 Statut Membre 18
 
C'est une fonction créée par dreamwaver si je me rappelle bien, elle sert à préparer les valeurs que tu va inserer dans la base de données, en ajoutant un anti slash avant les quotes qui sont déja des délimiteurs de champs dans le language sql, aussi elle sert à proteger ton site des injections sql.
Personnellement, je l'utilise pas, je me sert de la fonction addslashes de php qui est déja satisfaisante
2
loulou
 
Encore une fois merci briix, aurais tu des liens concernant cette fonction ?
0
briiiiix Messages postés 624 Statut Membre 18
 
Va sur le manuel php, il est excellent et très détaillé, aussi plein d'exemples:

https://www.php.net/manual/fr/index.php

Et pour ta fonction voici le lien direct:
https://www.php.net/manual/fr/function.addslashes.php
0
fandecarotte
 
sauf que
Warning

This feature has been DEPRECATED as of PHP 5.3.0. Relying on this feature is highly discouraged.

En gros ce n'est plus utilisé depuis php4 à moins que tu soit sur du un serveur en php4(ça existe encore :s) maintenant on utilise la fonction:

fomysql_real_escape_string($str);

Ah je me souvient pourquoi j'aime pas dreamweaver... son code est toujours aussi boiteux ou alors c'est une version du moyen-âge(php4).
0