[ Index ]
 

Code source de PHP NUKE 7.9

Accédez au Source d'autres logiciels libresSoutenez Angelica Josefina !

title

Body

[fermer]

/includes/ -> sql_layer.php (source)

   1  <?php
   2  
   3  /************************************************************************/

   4  /* PHP-NUKE: Web Portal System                                          */

   5  /* ===========================                                          */

   6  /*                                                                      */

   7  /* Copyright (c) 2002 by Francisco Burzi                                */

   8  /* http://phpnuke.org                                                   */

   9  /*                                                                      */

  10  /* postgres fix by Rubén Campos - Oscar Silla                         */

  11  /*                                                                      */

  12  /* This program is free software. You can redistribute it and/or modify */

  13  /* it under the terms of the GNU General Public License as published by */

  14  /* the Free Software Foundation; either version 2 of the License.       */

  15  /************************************************************************/

  16  
  17  if (stristr(htmlentities($_SERVER['PHP_SELF']), "sql_layer.php")) {
  18      Header("Location: ../index.php");
  19      die();
  20  }
  21  
  22  /* $dbtype = "MySQL"; */

  23  /* $dbtype = "mSQL"; */

  24  /* $dbtype = "postgres"; */

  25  /* $dbtype = "postgres_local";// When postmaster start without "-i" option. */

  26  /* $dbtype = "ODBC"; */

  27  /* $dbtype = "ODBC_Adabas"; */

  28  /* $dbtype = "Interbase"; */

  29  /* $dbtype = "Sybase"; */

  30  
  31  /*

  32   * sql_connect($host, $user, $password, $db)

  33   * returns the connection ID

  34   */
  35  
  36  
  37  class ResultSet {
  38      var $result;
  39      var $total_rows;
  40      var $fetched_rows;
  41  
  42  	function set_result( $res ) {
  43          $this->result = $res;
  44      }
  45  
  46  	function get_result() {
  47          return $this->result;
  48      }
  49  
  50  	function set_total_rows( $rows ) {
  51          $this->total_rows = $rows;
  52      }
  53  
  54  	function get_total_rows() {
  55          return $this->total_rows;
  56      }
  57  
  58  	function set_fetched_rows( $rows ) {
  59          $this->fetched_rows = $rows;
  60      }
  61  
  62  	function get_fetched_rows() {
  63          return $this->fetched_rows;
  64      }
  65  
  66  	function increment_fetched_rows() {
  67          $this->fetched_rows = $this->fetched_rows + 1;
  68      }
  69  }
  70  
  71  
  72  
  73  function sql_connect($host, $user, $password, $db)
  74  {
  75  global $dbtype;
  76  switch ($dbtype) {
  77  
  78      case "MySQL":
  79          $dbi=@mysql_connect($host, $user, $password);
  80      mysql_select_db($db);
  81          return $dbi;
  82      break;;
  83  
  84      case "mSQL":
  85           $dbi=msql_connect($host);
  86       msql_select_db($db);
  87       return $dbi;
  88      break;;
  89  
  90  
  91      case "postgres":
  92           $dbi=@pg_connect("host=$host user=$user password=$password port=5432 dbname=$db");
  93           return $dbi;
  94      break;;
  95  
  96      case "postgres_local":
  97           $dbi=@pg_connect("user=$user password=$password dbname=$db");
  98           return $dbi;
  99      break;;
 100  
 101      case "ODBC":
 102           $dbi=@odbc_connect($db,$user,$password);
 103           return $dbi;
 104      break;;
 105  
 106      case "ODBC_Adabas":
 107           $dbi=@odbc_connect($host.":".$db,$user,$password);
 108       return $dbi;
 109      break;;
 110  
 111      case "Interbase":
 112           $dbi=@ibase_connect($host.":".$db,$user,$password);
 113           return $dbi;
 114      break;;
 115  
 116      case "Sybase":
 117          $dbi=@sybase_connect($host, $user, $password);
 118          sybase_select_db($db,$dbi);
 119      return $dbi;
 120      break;;
 121  
 122      default:
 123      break;;
 124      }
 125  
 126  }
 127  
 128  function sql_logout($id)
 129  {
 130  global $dbtype;
 131  switch ($dbtype) {
 132  
 133      case "MySQL":
 134          $dbi=@mysql_close($id);
 135          return $dbi;
 136      break;;
 137  
 138      case "mSQL":
 139           $dbi=@msql_close($id);
 140           return $dbi;
 141      break;;
 142  
 143      case "postgres":
 144      case "postgres_local":
 145           $dbi=@pg_close($id);
 146           return $dbi;
 147      break;;
 148    
 149      case "ODBC":
 150      case "ODBC_Adabas":
 151           $dbi=@odbc_close($id);
 152           return $dbi;  
 153      break;;
 154  
 155      case "Interbase":
 156           $dbi=@ibase_close($id);
 157           return $dbi;
 158      break;;
 159  
 160      case "Sybase":
 161          $dbi=@sybase_close($id);
 162          return $dbi;
 163      break;;
 164  
 165      default:
 166      break;;
 167      }
 168  }
 169  
 170  
 171  /*

 172   * sql_query($query, $id)

 173   * executes an SQL statement, returns a result identifier

 174   */
 175  
 176  function sql_query($query, $id)
 177  {
 178  
 179  global $dbtype, $sql_debug;
 180  $sql_debug = 0;
 181  if($sql_debug) echo "SQL query: ".str_replace(",",", ",$query)."<BR>";
 182  switch ($dbtype) {
 183  
 184      case "MySQL":
 185          $res=@mysql_query($query, $id);
 186          return $res;
 187      break;;
 188  
 189      case "mSQL":
 190          $res=@msql_query($query, $id);
 191          return $res;
 192      break;;
 193  
 194      case "postgres":
 195      case "postgres_local":
 196      $res=pg_exec($id,$query);
 197      $result_set = new ResultSet;
 198      $result_set->set_result( $res );
 199      $result_set->set_total_rows( sql_num_rows( $result_set ) );
 200      $result_set->set_fetched_rows( 0 );
 201          return $result_set;
 202      break;;
 203  
 204      case "ODBC":
 205      case "ODBC_Adabas":
 206          $res=@odbc_exec($id,$query);
 207          return $res;
 208      break;;
 209  
 210      case "Interbase":
 211          $res=@ibase_query($id,$query);
 212          return $res;
 213      break;;
 214  
 215      case "Sybase":
 216          $res=@sybase_query($query, $id);
 217          return $res;
 218      break;;
 219  
 220      default:
 221      break;;
 222  
 223      }
 224  }
 225  
 226  /*

 227   * sql_num_rows($res)

 228   * given a result identifier, returns the number of affected rows

 229   */
 230  
 231  function sql_num_rows($res)
 232  {
 233  global $dbtype;
 234  switch ($dbtype) {
 235   
 236      case "MySQL":
 237          $rows=mysql_num_rows($res);
 238          return $rows;
 239      break;;
 240  
 241      case "mSQL":  
 242          $rows=msql_num_rows($res);
 243          return $rows;
 244      break;;
 245  
 246      case "postgres":
 247      case "postgres_local":
 248          $rows=pg_numrows( $res->get_result() );
 249          return $rows;
 250      break;;
 251          
 252      case "ODBC":
 253      case "ODBC_Adabas":
 254          $rows=odbc_num_rows($res);
 255          return $rows; 
 256      break;;
 257          
 258      case "Interbase":
 259      echo "<BR>Error! PHP dosen't support ibase_numrows!<BR>";
 260          return $rows; 
 261      break;;
 262  
 263      case "Sybase":
 264          $rows=sybase_num_rows($res);
 265          return $rows; 
 266      break;;
 267  
 268      default:
 269      break;;
 270      }
 271  }
 272  
 273  /*

 274   * sql_fetch_row(&$res,$row)

 275   * given a result identifier, returns an array with the resulting row

 276   * Needs also a row number for compatibility with postgres

 277   */
 278  
 279  function sql_fetch_row(&$res, $nr=0)
 280  {
 281  global $dbtype;
 282  switch ($dbtype) {
 283  
 284      case "MySQL":
 285          $row = mysql_fetch_row($res);
 286          return $row;
 287      break;;
 288  
 289      case "mSQL":
 290          $row = msql_fetch_row($res);
 291          return $row;
 292      break;;
 293  
 294      case "postgres":
 295      case "postgres_local":
 296      if ( $res->get_total_rows() > $res->get_fetched_rows() ) {
 297          $row = pg_fetch_row($res->get_result(), $res->get_fetched_rows() );
 298          $res->increment_fetched_rows();
 299          return $row;
 300      } else {
 301          return false;
 302      }
 303      break;;
 304  
 305      case "ODBC":
 306      case "ODBC_Adabas":
 307          $row = array();
 308          $cols = odbc_fetch_into($res, $nr, $row);
 309          return $row;
 310      break;;
 311  
 312      case "Interbase":
 313          $row = ibase_fetch_row($res);
 314          return $row;
 315      break;;
 316  
 317      case "Sybase":
 318          $row = sybase_fetch_row($res);
 319          return $row;
 320      break;;
 321  
 322      default:
 323      break;;
 324      }
 325  }
 326  
 327  /*

 328   * sql_fetch_array($res,$row)

 329   * given a result identifier, returns an associative array

 330   * with the resulting row using field names as keys.

 331   * Needs also a row number for compatibility with postgres.

 332   */
 333  
 334  function sql_fetch_array(&$res, $nr=0)
 335  {
 336  global $dbtype;
 337  switch ($dbtype)
 338      {
 339      case "MySQL":
 340          $row = array();
 341          $row = mysql_fetch_array($res);
 342          return $row;
 343      break;;
 344  
 345      case "mSQL":
 346          $row = array();
 347          $row = msql_fetch_array($res);
 348          return $row;
 349      break;;
 350  
 351      case "postgres":
 352      case "postgres_local":
 353      if( $res->get_total_rows() > $res->get_fetched_rows() ) {
 354          $row = array();
 355          $row = pg_fetch_array($res->get_result(), $res->get_fetched_rows() );
 356          $res->increment_fetched_rows();
 357          return $row;
 358      } else {
 359          return false;
 360      }
 361      break;;
 362  
 363  /*

 364   * ODBC doesn't have a native _fetch_array(), so we have to

 365   * use a trick. Beware: this might cause HUGE loads!

 366   */
 367  
 368      case "ODBC":
 369          $row = array();
 370          $result = array();
 371          $result = odbc_fetch_row($res, $nr);
 372      $nf = odbc_num_fields($res); /* Field numbering starts at 1 */
 373          for($count=1; $count < $nf+1; $count++)
 374      {
 375              $field_name = odbc_field_name($res, $count);
 376              $field_value = odbc_result($res, $field_name);
 377              $row[$field_name] = $field_value;
 378          }
 379          return $row;
 380      break;;
 381  
 382      case "ODBC_Adabas":
 383          $row = array();
 384          $result = array();
 385          $result = odbc_fetch_row($res, $nr);
 386  
 387          $nf = count($result)+2; /* Field numbering starts at 1 */
 388      for($count=1; $count < $nf; $count++) {
 389          $field_name = odbc_field_name($res, $count);
 390          $field_value = odbc_result($res, $field_name);
 391          $row[$field_name] = $field_value;
 392      }
 393          return $row;
 394      break;;
 395  
 396      case "Interbase":
 397      $orow=ibase_fetch_object($res);
 398      $row=get_object_vars($orow);
 399          return $row;
 400      break;;
 401  
 402      case "Sybase":
 403          $row = sybase_fetch_array($res);
 404          return $row;
 405      break;;
 406  
 407      }
 408  }
 409  
 410  function sql_fetch_object(&$res, $nr=0)
 411  {
 412  global $dbtype;
 413  switch ($dbtype)
 414      {
 415      case "MySQL":
 416          $row = mysql_fetch_object($res);
 417      if($row) return $row;
 418      else return false;
 419      break;;
 420  
 421      case "mSQL":
 422          $row = msql_fetch_object($res);
 423      if($row) return $row;
 424      else return false;
 425      break;;
 426  
 427      case "postgres":
 428      case "postgres_local":
 429      if( $res->get_total_rows() > $res->get_fetched_rows() ) {
 430          $row = pg_fetch_object( $res->get_result(), $res->get_fetched_rows() );
 431          $res->increment_fetched_rows();
 432          if($row) return $row;
 433          else return false;
 434      } else {
 435          return false;
 436      }
 437      break;;
 438  
 439      case "ODBC":
 440          $result = odbc_fetch_row($res, $nr);
 441      if(!$result) return false;
 442      $nf = odbc_num_fields($res); /* Field numbering starts at 1 */
 443          for($count=1; $count < $nf+1; $count++)
 444      {
 445              $field_name = odbc_field_name($res, $count);
 446              $field_value = odbc_result($res, $field_name);
 447              $row->$field_name = $field_value;
 448          }
 449          return $row;
 450      break;;
 451  
 452      case "ODBC_Adabas":
 453          $result = odbc_fetch_row($res, $nr);
 454      if(!$result) return false;
 455  
 456          $nf = count($result)+2; /* Field numbering starts at 1 */
 457      for($count=1; $count < $nf; $count++) {
 458          $field_name = odbc_field_name($res, $count);
 459          $field_value = odbc_result($res, $field_name);
 460          $row->$field_name = $field_value;
 461      }
 462          return $row;
 463      break;;
 464  
 465      case "Interbase":
 466          $orow = ibase_fetch_object($res);
 467      if($orow)
 468      {
 469          $arow=get_object_vars($orow);
 470          while(list($name,$key)=each($arow))
 471          {
 472          $name=strtolower($name);
 473          $row->$name=$key;
 474          }
 475              return $row;
 476      }else return false;
 477      break;;
 478  
 479      case "Sybase":
 480          $row = sybase_fetch_object($res);
 481          return $row;
 482      break;;
 483  
 484      }
 485  }
 486  
 487  /*** Function Free Result for function free the memory ***/

 488  function sql_free_result($res) {
 489  global $dbtype;
 490  switch ($dbtype) {
 491  
 492      case "MySQL":
 493          $row = mysql_free_result($res);
 494          return $row;
 495      break;;
 496  
 497         case "mSQL":
 498          $row = msql_free_result($res);
 499          return $row;
 500      break;;
 501  
 502  
 503          case "postgres":
 504      case "postgres_local":
 505          $rows=pg_FreeResult( $res->get_result() );
 506          return $rows;
 507      break;;
 508  
 509      case "ODBC":
 510      case "ODBC_Adabas":
 511          $rows=odbc_free_result($res);
 512          return $rows;
 513      break;;
 514  
 515      case "Interbase":
 516      echo "<BR>Error! PHP dosen't support ibase_numrows!<BR>";
 517          return $rows;
 518      break;;
 519  
 520      case "Sybase":
 521          $rows=sybase_free_result($res);
 522          return $rows;
 523      break;;
 524      }
 525  }
 526  
 527  ?>


Généré le : Sun Apr 1 11:11:59 2007 par Balluche grâce à PHPXref 0.7