Login   Register  
PHP Classes
elePHPant
Icontem

File: siteaccess/class.BaseConn.php

Recommend this page to a friend!
Stumble It! Stumble It! Bookmark in del.icio.us Bookmark in del.icio.us
  Classes of MarPlo  >  Web Site Traffic and Pages Access  >  siteaccess/class.BaseConn.php  >  Download  
File: siteaccess/class.BaseConn.php
Role: Class source
Content type: text/plain
Description: Connectes to database, and executes SQL queries
Class: Web Site Traffic and Pages Access
Record visits of real users to Web site pages
Author: By
Last change: Deleted properties unused in this class
Date: 1 year ago
Size: 4,811 bytes
 

Contents

Class file image Download
<?php
// class to connect to MySQL and perform SQL queries
// From -  http://coursesweb.net/php-mysql/
class BaseConn {
  static protected 
$conn false;            // stores the connection to mysql
  
protected $conn_data = array();            // to store data for connecting to database
  
public $affected_rows 0;        // number affected rows for Insert, Update, Delete
  
public $num_rows 0;             // number of rows from Select /Show results
  
public $last_insertid;            // stores the last ID in an AUTO_INCREMENT column, after Insert query
  
public $currentpage = array('nrac'=>1'dt'=>1);       // number of accesses, and last accessed of current accessed page
  
protected $l;                    // to store the text used in script
  
public $eror false;          // to store and check for errors

  
function __construct($conn_data) {
    
$this->$GLOBALS['lang_txt'];     // store in property the texts defined in 'lang.php'
    
if(STORE_DATA == 'mysql'$this->conn_data $conn_data;       // stores connection data to MySQL database

    // filter data recived via POST for page access
    
if(isset($_POST['url']) && isset($_POST['title'])) {
      
$protocol = (isset($_SERVER["HTTPS"]) && $_SERVER['HTTPS'] == 'on') ? 'https' 'http';
      
$_POST['url'] = trim(strip_tags(str_replace($protocol.'://'.$_SERVER['HTTP_HOST'], ''$_POST['url'])));
      
$_POST['title'] = trim(str_replace(array('<''>''"'"'"), array('&lt;''&gt;''&quot;''&#039;'), $_POST['title']));

      
// SAVE_WTD = 1 allows to save data
      
if(!defined('SAVE_WTD')) define('SAVE_WTD', (ISAJAX == && (!isset($_SESSION['pgaurl']) || (isset($_POST['url']) && $_POST['url'] != $_SESSION['pgaurl']))) ? 0);
    }
  }

  
// for connecting to mysql with PDO
  
protected function setConn($conn_data) {
    try {
      
// Connect and create the PDO object
      
self::$conn = new PDO("mysql:host=".$conn_data['host']."; dbname=".$conn_data['bdname'], $conn_data['user'], $conn_data['pass']);

      
// Sets to handle the errors in the ERRMODE_EXCEPTION mode
      
self::$conn->setAttribute(PDO::ATTR_ERRMODEPDO::ERRMODE_EXCEPTION);

      
// Sets transfer with encoding UTF-8
      
self::$conn->exec('SET character_set_client="utf8",character_set_connection="utf8",character_set_results="utf8";');
    }
    catch(
PDOException $e) {
      
$this->eror =  $e->getMessage();
    }
  }

  
// Performs SQL queries
  // $sql - SQL query with prepared statement
  // $val - array of insert values
  
public function sqlExecute($sql$val=array()) {
    if(
self::$conn === false || self::$conn === NULL$this->setConn($this->conn_data);      // sets the connection to mysql
    
$re true;           // the value to be returned

    // if there is a connection set ($conn property not false)
    
if(self::$conn !== false) {
      
// gets the first word in $sql, to determine whenb SELECT query
      
$ar_mode explode(' 'trim($sql), 2);
      
$mode strtolower($ar_mode[0]);

      
// performs the query and get returned data
      
try {
        
$sqlre self::$conn->prepare($sql);    // prepares statement
        // execute query
        
if($sqlre && $sqlre->execute($val)) {
          
// if $mode is 'select' or 'show', gets the result_set to return
          
if($mode == 'select' || $mode == 'show') {
            
$re = array();
            
// if fetch() returns at least one row (not false), adds the rows in $re for return
            
if(($row $sqlre->fetch(PDO::FETCH_ASSOC)) !== false){
              do {
                
// check each column if it has numeric value, to convert it from "string"
                
foreach($row AS $k=>$v) {
                  if(
is_numeric($v)) $row[$k] = $v 0;
                }
                
$re[] = $row;
              }
              while(
$row $sqlre->fetch(PDO::FETCH_ASSOC));
            }
            
$this->num_rows count($re);                   // number of returned rows
          
}
          else 
$this->affected_rows $sqlre->rowCount();      // affected rows for Insert, Update, Delete

          // if Insert query, stores the last insert ID
          
if($mode == 'insert'$this->last_insertid self::$conn->lastInsertId();
        }
        else 
$this->setSqlError(self::$conn->errorInfo());
      }
      catch(
PDOException $e) {
        
$this->setSqlError(array(01$e->getMessage()));
      }
    }

    
// sets to return false in case of error
    
if($this->eror !== false$re false;
    return 
$re;
  }

  
// set sql error 8n $eror
  // $errorInfo - array with error (error message stored in index 2)
  
protected function setSqlError($errorInfo) {
    
$this->eror '<h4>'$this->l['err']. $errorInfo[2] .'</h4>';
  }
}