SHARE
TWEET

Untitled

a guest Jun 15th, 2017 513 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. <?php
  2.  
  3. //DBMySQL Class
  4. /*
  5.  * Database Management for PHP
  6.  *
  7.  * Copyright (c) 2009/2010
  8.  *                      by Gledston Reis(gledston.reis@catolica.edu.br)
  9.  *
  10.  * Licença: GPL
  11.  * mysql_class.php
  12.  *
  13.  */
  14.  
  15. class DB_MySQL {
  16.  
  17.   /* público: paramentros de conexões */
  18.   public $DBHost     = "";
  19.   public $DBPort     = "";
  20.   public $DBDatabase = "";
  21.   public $DBUser     = "";
  22.   public $DBPassword = "";
  23.   public $Persistent = false; ## conexão persistente. Default false
  24.  
  25.   /* público: configuração do padrões */
  26.   public $Auto_Free     = 1;     ## 1 para automática chamada da função mysql_free_result()
  27.  public $Debug         = 0;     ## 1 para informações de debug. Default 0.
  28.  public $Seq_Table     = "db_sequence";
  29.  
  30.   /* público: resultado em array */
  31.   public $Record   = array();
  32.   public $Row;
  33.  
  34.   /* público: erro e número do erro */
  35.   public $Errno    = 0;
  36.   public $Error    = "";
  37.  
  38.   /* público: versão dessa classe */
  39.   public $type     = "mysql";
  40.   public $revision = "1.0";
  41.  
  42.   /* privado: handle e link de conexão */
  43.   private $Link_ID  = 0;
  44.   private $Query_ID = 0;
  45.   private $Connected = false;
  46.  
  47.   private $Encoding = "";
  48.  
  49.   /* público: construtor */
  50.   function __construct($query = "") {
  51.       $this->query($query);
  52.   }
  53.  
  54.   /* público: link id */
  55.   function link_id() {
  56.     return $this->Link_ID;
  57.   }
  58.  
  59.   function query_id() {
  60.     return $this->Query_ID;
  61.   }
  62.  
  63.   function try_connect($DBHost = "", $DBPort = "", $DBUser = "", $DBPassword = "") {
  64.     $this->Query_ID  = 0;
  65.     /* Padrões */
  66.     if ("" == $DBHost)       $DBHost     = $this->DBHost;
  67.     if ("" == $DBPort)       $DBPort     = $this->DBPort;
  68.     if ("" == $DBUser)       $DBUser     = $this->DBUser;
  69.     if ("" == $DBPassword)   $DBPassword = $this->DBPassword;
  70.      
  71.     if($DBPort != "") $DBHost .= ":" . $DBPort;
  72.  
  73.     if($this->Persistent)
  74.       $this->Link_ID = @mysql_pconnect($DBHost, $DBUser, $DBPassword);
  75.     else
  76.       $this->Link_ID = @mysql_connect($DBHost, $DBUser, $DBPassword);
  77.    
  78.     $this->Connected = $this->Link_ID ? true : false;
  79.     return $this->Connected;
  80.   }
  81.  
  82.   /* público: gerenciamento de conexões*/
  83.   function connect($DBDatabase = "", $DBHost = "", $DBPort = "", $DBUser = "", $DBPassword = "") {
  84.     /* padrões */
  85.     if ("" == $DBDatabase)   $DBDatabase = $this->DBDatabase;
  86.     if ("" == $DBPort)       $DBPort     = $this->DBPort;
  87.     if ("" == $DBHost)       $DBHost     = $this->DBHost;
  88.     if ("" == $DBUser)       $DBUser     = $this->DBUser;
  89.     if ("" == $DBPassword)   $DBPassword = $this->DBPassword;
  90.      
  91.     if($DBPort != "") $DBHost .= ":" . $DBPort;
  92.  
  93.     /* estabelece a conexão com a base de dados */
  94.     if (!$this->Connected) {
  95.       $this->Query_ID  = 0;    
  96.       if($this->Persistent)
  97.         $this->Link_ID=@mysql_pconnect($DBHost, $DBUser, $DBPassword);
  98.       else
  99.         $this->Link_ID=@mysql_connect($DBHost, $DBUser, $DBPassword);
  100.  
  101.       if (!$this->Link_ID) {
  102.         $this->halt("Impossível conectar a base de dados " . mysql_error());
  103.         return 0;
  104.       }
  105.  
  106.       if (!@mysql_select_db($DBDatabase,$this->Link_ID)) {
  107.         $this->halt("Impossivel usar a base de dados " . mysql_error());
  108.         return 0;
  109.       }
  110.       $server_info = @mysql_get_server_info($this->Link_ID);
  111.       preg_match("/\d+\.\d+(\.\d+)?/", $server_info, $matches);
  112.       $version_str = $matches[0];
  113.       $version = explode(".", $version_str);
  114.       if ($version[0] >= 4) {
  115.         if (($version[0] > 4 || $version[1] >= 1) && is_array($this->Encoding) && $this->Encoding[1])
  116.           @mysql_query("SET NAMES '" . $this->Encoding[1] . "'", $this->Link_ID);
  117.         elseif (is_array($this->Encoding) && $this->Encoding[0])
  118.           @mysql_query("SET NAMES '" . $this->Encoding[0] . "'", $this->Link_ID);
  119.       }
  120.       $this->Connected = true;
  121.     }
  122.    
  123.     return $this->Link_ID;
  124.   }
  125.  
  126.  
  127.  
  128.   /* público: limpa o resultado da query */
  129.   function free_result() {
  130.     if (is_resource($this->Query_ID)) {
  131.       @mysql_free_result($this->Query_ID);
  132.     }
  133.     $this->Query_ID = 0;
  134.   }
  135.  
  136.   /* público: query */
  137.   function query($Query_String) {
  138.    
  139.     if ($Query_String == "")
  140.         return 0;
  141.  
  142.     if (!$this->connect()) {
  143.       return 0; /* nós ja estamos conectados. */
  144.     };
  145.  
  146.     # Nova query, descarte a última.
  147.    if ($this->Query_ID) {
  148.       $this->free_result();
  149.     }
  150.  
  151.     if ($this->Debug)
  152.       printf("Debug: query = %s<br>\n", $Query_String);
  153.  
  154.     $this->Query_ID = @mysql_query($Query_String,$this->Link_ID);
  155.     $this->Row   = 0;
  156.     $this->Errno = mysql_errno();
  157.     $this->Error = mysql_error();
  158.     if (!$this->Query_ID) {
  159.       die("Database Error: " . mysql_error());
  160.     }
  161.  
  162.     # retornaremos nada se falhar.
  163.    return $this->Query_ID;
  164.   }
  165.  
  166.   /* público: navega no resultado */
  167.   function next_record() {
  168.     if (!$this->Query_ID)
  169.       return 0;
  170.  
  171.     $this->Record = @mysql_fetch_array($this->Query_ID);
  172.     $this->Row   += 1;
  173.     $this->Errno  = mysql_errno();
  174.     $this->Error  = mysql_error();
  175.  
  176.     $stat = is_array($this->Record);
  177.     if (!$stat && $this->Auto_Free) {
  178.       $this->free_result();
  179.     }
  180.     return $stat;
  181.   }
  182.  
  183.   /* público: posição no registro */
  184.   function seek($pos = 0) {
  185.     $status = @mysql_data_seek($this->Query_ID, $pos);
  186.     if ($status) {
  187.       $this->Row = $pos;
  188.     } else {
  189.       die("Database error: seek($pos) falhou -  o resultado foi ".$this->num_rows()." rows");
  190.  
  191.       @mysql_data_seek($this->Query_ID, $this->num_rows());
  192.       $this->Row = $this->num_rows();
  193.     }
  194.     return true;
  195.   }
  196.  
  197.   /* público: trava a tabela */
  198.   function lock($table, $mode="write") {
  199.     $this->connect();
  200.    
  201.     $query="lock tables ";
  202.     if (is_array($table)) {
  203.       while (list($key,$value)=each($table)) {
  204.         if ($key=="read" && $key!=0) {
  205.           $query.="$value read, ";
  206.         } else {
  207.           $query.="$value $mode, ";
  208.         }
  209.       }
  210.       $query=substr($query,0,-2);
  211.     } else {
  212.       $query.="$table $mode";
  213.     }
  214.     $res = @mysql_query($query, $this->Link_ID);
  215.     if (!$res) {
  216.       die("Database error: Não foi possivel travar a tabela - " . mysql_error());
  217.       return 0;
  218.     }
  219.     return $res;
  220.   }
  221.   /*público: destrava a tabela */
  222.   function unlock() {
  223.     $this->connect();
  224.  
  225.     $res = @mysql_query("unlock tables");
  226.     if (!$res) {
  227.       die("Database error: não foi possível destravar a tabela - " . mysql_error());
  228.       return 0;
  229.     }
  230.     return $res;
  231.   }
  232.  
  233.  
  234.   /* público: funções de efeito da query */
  235.   function affected_rows() {
  236.     return @mysql_affected_rows($this->Link_ID);
  237.   }
  238.  
  239.   function num_rows() {
  240.     return @mysql_num_rows($this->Query_ID);
  241.   }
  242.  
  243.   function num_fields() {
  244.     return @mysql_num_fields($this->Query_ID);
  245.   }
  246.  
  247.     function f($Name) {
  248.     return $this->Record && array_key_exists($Name, $this->Record) ? $this->Record[$Name] : "";
  249.   }
  250.  
  251.   function p($Name) {
  252.     print $this->Record[$Name];
  253.   }
  254.  
  255.  
  256.   function close()
  257.   {
  258.     if ($this->Query_ID) {
  259.       $this->free_result();
  260.     }
  261.    
  262.   }  
  263.  
  264.   /* privado: erros */
  265.   function halt($msg) {
  266.     printf("</td></tr></table><b>Database error:</b> %s<br>\n", $msg);
  267.     printf("<b>MySQL Error</b><br>\n");
  268.     die("Session halted.");
  269.   }
  270.  
  271. }  
  272. //End DB MySQL Class
  273.  
  274.  
  275. ?>
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top