Location: PHPKode > scripts > SODA > soda/exemples/01_utilisation_simple.php
<?php
require_once("../base.inc.php");
echo "<p><h1>Exemples d'utilisation simple de la Classe SODA:</h1></p>";
echo "<p><h2>Exemple 1 :</h2></p>";
//création de l'objet:
/*
  on pose une même requete à la base de donnée 'moteur' on l'appele select_ten :
  cette requete est accessible de différentes manières :
  $bd->select_ten = $bd->requests['select_ten'] = $bd->requests->select_ten
  on aurait pu donner une valeur numérique ou ne pas préciser le nom ce qui équivaut à lui donner la valeur numérique de 0.
  pour accéder à cette requête alors on ferait de cette manière: 
  $bd->requests[0]
!!!!!! ATTENTION !!!!!!! 
  Les requetes ne peuvent pas avoir les noms suivants: 
    _requests,_persistant,_driver,_dbtype,_connected,_select_db,_errors,_user,_pwd,_server,_dbname,_connection,_vecteur,_certificate,_private_key,_basedir,_driver_file
!!!!!! ATTENTION !!!!!!! 
Pour éviter tout problème du aux versions évitez simplement d'utiliser des noms de requête commençant par underscore "_"
*/
/*
  exemple 1: on veut les résultats à la manière de mysql_fetch_assoc 
 les résultats sont stockés dans un tableau dans les variables:
 $data = $bd->select_ten->data = $bd['select_ten']->data = $bd->requests['select_ten']->data = $bd->requests->select_ten->data
 
 Un équivalent avec mysql est le code suivant:
 $link=mysql_connect('localhost','root','mot_de_passe');
 mysql_select_db('moteur',$link);
 $res=mysql_query('SELECT * FROM `DNSEARCH` WHERE `type`=3 LIMIT 0, 5 ',$link);
 while ($row = mysql_fetch_row($res)) {
   $data[]=$row;
 }
 var_dump($data);
 var_dump(mysql_stat());
 //Notez que ce code ne donne pas autant d'informations que l'utilisation de SODA
*/
/*
  $result_type va modifier la forme des résultats retournés. il peut valoir 'array','object','row','field' ou 'assoc' (par défaut:'row')
  - 'array' retourne à la fois les résultats sous la même forme que 'row' et que 'assoc'
  - 'object' chaque ligne de résultat est un objet avec comme nom de propriétés le nom des champs et comme valeur leur valeur respectives.
  - 'row' chaque ligne de résultat est un tableau indexé numériquement.
  - 'assoc' chaque ligne de résultat est un tableau indexé avec les noms des champs
  - 'field' retourne un objet pour chaque ligne de résultat, contenant les informations sur les champs. 
    Pour field, il est inutile de préciser $len (voir ci dessous)
Pour plus d'informations consulter la documentation php sur les fonctions mysql_fetch_...
*/
$result_type='assoc';
/*
  $len va modifier la valeur de  $bd->select_ten->lengths il peut valoir soit 0 soit 1 soit 2 (par défaut 0)
  - si $len vaut 0: $bd->select_ten->lengths contient une approximation de la taille totale du résultat (valeur exacte de l'export) 
  - si $len vaut 1: $bd->select_ten->lengths est un tableau qui contient la taille exacte de chaque ligne de résultat. (mysql_fetch_length)
  - si $len vaut 2: $bd->select_ten->lengths est un tableau qui contient la somme de toutes les lignes de résultat pour chaque colone de la table.
*/
$len=0;
$bd = SODA::create('root', 'mot_de_passe', 'moteur', 'localhost','mysql');
//On sélectionne les 5 premières lignes de la table 'DNSEARCH' où type=3
$data=$bd->query('SELECT * FROM `DNSEARCH` WHERE `type`=3 LIMIT 0, 5 ' , 'select_ten' , $result_type, $len);
var_dump($data);
//on affiche l'objet 'request' pour voir ce qu'il y a dedans
var_dump($bd->select_ten);
//puis on efface la requete si l'on veut libérer de la mémoire:
$bd->clean('select_ten');
//une autre possibilité est de faire :
//$bd->select_ten->clean();

//exemple d'utilisation d'une fonction native mysql avec mysql_stat()
var_dump($bd->_stat());



/* résultats commentés:
//les données retournées par query:
object(Array_Object)[7]
  
    array
      'long_ip' => string '214549523' (length=9)
      'host' => string 'threezprinting.com' (length=18)
      'type' => string '3' (length=1)
  
    array
      'long_ip' => string '418549946' (length=9)
      'host' => string 'mermony.com' (length=11)
      'type' => string '3' (length=1)
  
    array
      'long_ip' => string '211550389' (length=9)
      'host' => string 'allianceabroad.net' (length=18)
      'type' => string '3' (length=1)
  
    array
      'long_ip' => string '417550322' (length=9)
      'host' => string 'nxane.com' (length=9)
      'type' => string '3' (length=1)
  
    array
      'long_ip' => string '203550569' (length=9)
      'host' => string 'molecular.com' (length=13)
      'type' => string '3' (length=1)
      
//le détail de l'objet request:

object(request)[1]

//le code sql
  public '_sql' => string 'SELECT * FROM `DNSEARCH` WHERE `type`=3 LIMIT 0, 5 ' (length=51)

//les données
  public '_data' => 
    object(Array_Object)[7]
      
        array
          'long_ip' => string '214549523' (length=9)
          'host' => string 'threezprinting.com' (length=18)
          'type' => string '3' (length=1)
      
        array
          'long_ip' => string '418549946' (length=9)
          'host' => string 'mermony.com' (length=11)
          'type' => string '3' (length=1)
      
        array
          'long_ip' => string '211550389' (length=9)
          'host' => string 'allianceabroad.net' (length=18)
          'type' => string '3' (length=1)
      
        array
          'long_ip' => string '417550322' (length=9)
          'host' => string 'nxane.com' (length=9)
          'type' => string '3' (length=1)
      
        array
          'long_ip' => string '203550569' (length=9)
          'host' => string 'molecular.com' (length=13)
          'type' => string '3' (length=1)
          
//le type de résultat demandé
  public '_type' => string 'assoc' (length=5)
  
//le type de taille attendue
  public '_ltype' => int 0
  
//false s'il n'y a pas de résultat true s'il y en a un
  public '_result' => boolean true
  
//la taille dont le type est défini par _ltype
  public '_lengths' => int 528
  
//le nombre de champs de résultat
  public '_fields' => int 3

//le nombre de lignes de résultat
  public '_rows' => int 5

//les variables du code sql (voir exemples du fichier 02_utilisations_avancees.php) 
  public '_vars' => 
    object(Array_Object)[4]
//l'objet parent (celui qui a créé l'objet) il s'agit ici de la variable $bd un objet de type SODA
//on peut remarquer que les données sont cryptées à l'intérieur de l'objet et inaccessibles même avec un var_dump, 
//pourtant $bd->_persistant retournera false, $bd->_user retournera NULL 
//mais $bd->_user='admin'; changera la valeur du nom d'utilisateur à 'admin' qui sera automatiquement crypté.
  public '_parent' => 
    object(driver_mysql)[10]
    
//les variables en lecture seule:
      protected 'read_only' => 
        object(Array_Object)[9]
          public '_persistant' => string '' (length=0)
          public '_driver' => string 'X2RyaXZlcg==hUm4ZvnAV1Aityzinnl0grv28/B5BjK5RJzXMvd3Fe49JaBzDMo3Oph17W7ZBYwRT1U5XDRlCiCE1DSpH4I5ncxelugdW4Ec+b2p+xFHfpiTRCXVhYJDScAALgoh81lm2knJSuYb4j3p7uf1RmpyF5eGskuuQUOxa84gsDKViAo=' (length=184)
          public '_dbtype' => string 'X2RidHlwZQ==li2/+OvDV4w0HgHaSkuIy3LZ5hGN6m4wg5CJiQAdxFErh7/7cMtQ6aUe6C8XiangoScLM9JA+/IAWTK1u4G2WnWhXN1MS8wEo187et9TX7dZ+SpOGTsVYtLYYvDTXR5EebaTlnota3HNvwnPFU6+SiY4NDPRYTPNIrxIshC74mc=' (length=184)
          public '_connected' => string 'X2Nvbm5lY3RlZA==M2aNT1OHkzH4xQkhBjPS8Yncj0VeDO4uIvw9wcSQvS4xGf3y1EolByn7phOxq3EUBGQrzvbTvrOEzBucPs9fmTs5YLX4yCHR97qTb8KVSiU+qn8KWI2hfMCrC1akMSQZQjPTgbfdSf/VEWmk80tauN08RedkNRj0GkT/d6DP1eM=' (length=188)
          public '_select_db' => string 'X3NlbGVjdF9kYg==3M8WiZ2EmL3qIedwTJ13JEG9peDHjltcyFbYHKCl3fS1q6q6eldPLvKCvzWiEeG8AJT34rV0Ga16+6M4BUixfjSHcdfs8X53Oi+15b1YQzggzS059nfXf157tGLSHLzWzdv3Niox5e40G/QM53VpGecyMAUAXvgkS49Wp5ZlYiY=' (length=188)
          public '_requests' => 
            object(Array_Object)[14]
              ...
          public '_errors' => 
            object(Array_Object)[16]
              ...
              
//les variables en écriture seule
      protected 'write_only' => 
        object(Array_Object)[11]
          public '_persistant' => string '' (length=0)
          public '_user' => string 'X3VzZXI=RYsOELGmEq427xpKE1P4xQRmd0KU7hZzR7ULSejiG2BrKYXC5ubOrpRyDgR2iNQo/Leb2T7UBKWahhyBYQ1kL/4S2LcunGPokEbKsLY4I1zK6Y7tqt458hzKiY8SkF+DCsJcTpYH4bJnXBa9cc3sgudCgWu+Bh3JiYpyMCcLFS8=' (length=180)
          public '_pwd' => string 'X3B3ZA==n/mV6cTRrYdVfc6HjwEBQd+DvEZ+iwd9R1zgH02N6VflPu6fzI7K3+MLta8BGh2ZvOpkOAqCCohhLWhTUKYAUxtO8boy0er2J2jFoPYiCe9mZWXlrkXzbizszoZY6+s1JNN1DnCbCIGKKNUz7fth2MOsS0dgRQPCOmqen2b5eqY=' (length=180)
          public '_server' => string 'X3NlcnZlcg==k03jeKH3gfkragjqpmzZ+ukzM9k66ou2Xg4mS/Hk/yXU29/pfEg1n9o0U4NPD4MiuT978BRF5fTN6/HsPOw2g/xCxcPquwhCfcxkO1A46wR6eOBc0B6jO8xWh6oHItcR8jbiyb7JmyjLDDhRelRLcai32EW0vkQP/Vdf19c+NgQ=' (length=184)
          public '_dbname' => string 'X2RibmFtZQ==tOuKZCzciYHomaHCcgmg+36tFIUbM4Cz3v8TsfTwDLt9jyyvfaz2pRwDTaeoOSQm+Q/YpIeI2okLwq4P07D2G2AiHj9toWAjVIDyQxlNqROo6uvGOficPYfQ7aC8y+4L0PgjmwptFbl8nZzDKxXYYPeAEepjL0I5RqEYEvxpNng=' (length=184)
          public '_requests' => 
            object(Array_Object)[14]
              ...
              
//les variables protégés ne sont pas cryptées par défaut:
      protected 'protected' => 
        object(Array_Object)[12]
          public '_connection' => resource(19, mysql link)
          public '_vecteur' => string 'L3AG02zOSJvnGksxw8gmiA==' (length=24)
          public '_certificate' => string 'ko26308i0MvFz8mOJWAId8jLFVFG/2JB9HVPhpXP/GZCw4bw760iv4Pk/Ow2kIBPh+IxhFMtz4buq03rPcFLotzLUTilzBBsrOkXzOU+b+whCxcVLOzNsu5C5mAXJ+c23A+dukZyyYOc/B7bv5lnXXzKdasOnjhhIH1ktpcR2Zo3O/bAuaroIzH1WquqkmvcPbyTEqGBDlnF3gtj590kafCzaFQ/KZDUUdDIjRULl2wZV1ywUlpf1AhDojM+pHJr1nutYOYFraJRy3fb8XHifQTzU8FBAf1LMviFsbtlRzukxR2/OYtJiBBE9G3wToiWeM1svls4Q/rc/VnnkDQC0baao0F72ozbyj9jWPjNUdQ2CCq7of1RErBBWid9rE1cF4Bwf8zi07jF0OVBiSBxCFg84cdhPZMFjTiaeiyjV+qqiKpQ1aOXkXdz4IOEmaC6Y5UCgeOCZhhFIIAp+Wzk8pHmZbuNG3QiFHMY4eIScZGyqbCDo/JD/1NF1n/ORzNx'... (length=1856)
          public '_private_key' => string 'T7CbG90OYJuZIYPARU474qIAkMYHO9fLPTVXnKTE/ylQNngIc4td3SVrDA4M+TPaM9R62mqVACGl7PB4ggsZU4XQbQ6vG2SdQuVOO8gvPREZOGs9VaHBorMSNzhwJFG7DBJvuUjWORYb8s4yGfnGUg5ozYtd0LYh4YmB4ezTpWSmDrkCVWrGC3XBKg+GCBBAQxLpU3MDKMLSI2zng3D6yA+SJt2SxZZ3m8KCPFVItyahRXqz8vREekG5D5L/jYfhqF72NjdQ8ye4jWEbJTVBXabitlPJYccrUqmrO/xD+G+O9YhijVeJ4EaeNTTXur3yF0nLDxkmt/DR5DyjgUU8LvN5GRNGR3XFmn2DRpb1yVkv45O1AKSIC/L2yYLK4ayBpUpQBUVL5OlDu0uQHAWyG3pwZ9xuueZtNRd7ISSNYu3X5iU+kzNFY6nR5MCzBzt8H8ZvCRBe1ohHmQHuRg8gOCYvAJDtS/7G9lIaa6iQRjlmZJxvNKcZ9Jd6NkO30OQy'... (length=1284)
          public '_persistant' => boolean false
          public '_basedir' => string '/var/www/framework/SODA' (length=23)
          public '_driver_file' => string '/var/www/framework/SODA/drivers/driver_mysql.php' (length=48)

//le résultat de $bd->_stat()
string 'Uptime: 9866  Threads: 1  Questions: 80  Slow queries: 0  Opens: 13  Flush tables: 1  Open tables: 7  Queries per second avg: 0.008' (length=131)

*/



?>
Return current item: SODA