PHP Classes

File: common_pdo.php

Recommend this page to a friend!
  Classes of Marco Sillano   PHP ODT Template SQL Reports   common_pdo.php   Download  
File: common_pdo.php
Role: Auxiliary script
Content type: text/plain
Description: Update for commonSQL (obsolete)
Class: PHP ODT Template SQL Reports
Generate report from MySQL data using ODT template
Author: By
Last change:
Date: 4 years ago
Size: 6,873 bytes
 

Contents

Class file image Download
<?php
// ==================== server access (localhost / production)
// +++++++++ CHANGE HERE application globals:
// $weburl ='http://sillano.hopto.org:8880/bridge/'; // example: internet public using no_ip.org
// $weburl ='http://192.168.1.55:88/www/bridge/' ; // example: local net. wifi
   
$weburl ='http://localhost:88/bridge/'; // example: local server, debug
 
// application password (difference between guest/user)
     
$appPass = '44b8e497c5f15d970d7346d39cd52a16'; // example: 'giobridge'
// to change $appPass:
// echo md5(trim( 'the_password'));
// ==================== GENERAL PDO-MYSQL
/*
Use $parameters as couples [key ':name' => value 'a_value']
to protect from 'injection attack' in user-defined values (optional).
Use only $statment if safe (not from user or cheked values).
*/
 
function sql($statment, $parameters = array()){
   
$dbServer = 'localhost'; // default
   
$dbDatabase = 'bridge'; // default
// +++++++++ CHANGE HERE MySql values:
   
$dbUsername = 'root'; // example: localhost debug
   
$dbPassword = ''; // example: localhost debug
// $dbPassword = 'secret'; // example: production
 
 
//====================================================
   
 
static $pdo = NULL;
 
    if(!
$pdo){
       
/****** Connect to MySQL via PDO ******/
       
if(!extension_loaded('pdo_mysql')){
            echo
"<div class=error>INTERNAL ERROR: PHP is not configured to connect to MySQL via PDO on this machine.
             Please see <a href=https://www.php.net/manual/en/pdo.installation.php>this page</a> for help
             on how to configure php.</div>"
;
            exit;
        }
try {
     
$pdo = new PDO( "mysql: host=$dbServer;dbname=$dbDatabase;charset=utf8", $dbUsername, $dbPassword );
     
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
     } catch (
PDOException $e) {
      echo
'<div class=error>INTERNAL ERROR: Error in connection <br />'. $e->getMessage().'</div>';
          exit;
         }
  }
// ends $pdo == false
 
 
try {
      
$query = $pdo->prepare($statment);
      
$query->execute($parameters);
      } catch (
PDOException $e) {
      echo
'<div class=error>INTERNAL ERROR: Query error <br />'. $e->getMessage()." <br> in \"$statment\"</div>";
          exit;
       }

 
// $pdo = NULL; // closed at page end
   
return $query;
}

// return only a value
function sqlValue($query, $parameters = array()) {
 
$result = sql($query, $parameters);
 
$row =$result->fetch();
 
$result = NULL;
  return
$row[0];
}

// return an array of values: array[]=row[0]
function sqlArray($query, $parameters = array()) {
 
$result = sql($query, $parameters);
 
$dats = $result->fetchAll(PDO::FETCH_COLUMN, 0);
 
$result = NULL;
  return
$dats;
}
           
// return the full array of records
function sqlRecord($query, $parameters = array()) {
 
$result = sql($query, $parameters);
 
$dats = $result->fetchAll();
 
$result = NULL;
  return
$dats;
}


// return an associative lookup: array[row[0]]=row[1]
function sqlLookup($query, $parameters = array()) {
 
$result = sql($query, $parameters);
 
$dats = array();
  while(
$row = $result->fetch()){
     
$dats[$row[0]] = $row[1];
  }
  
$result = NULL;
   return
$dats;
}
 
 
// ================================== ENDS GENERAL PDO-MYSQL
 
 //=========== some mysql-HTML utilities:
// per combo input, options da una query (id, value)
function optionsList($query, $selected = -1){
    
$options = '';
    
$ops = sqlLookup($query);
     while (list(
$chiave, $valore) = each($ops)) {
       
$options .= "<option value='$chiave' ".($chiave == $selected ? ' selected = "selected"':'')." >$valore</option>\n";
     }
     return
$options;
}
             
// per combo input, coppie numeriche
function optionsNList($from, $to, $selected){
    
$options = '';
     for(
$i = $from; $i < $to; $i++) {
       
$options .= "<option value='$i'".($i == $selected ? ' selected = "selected"':'')." >$i</option>\n" ;
        }
     return
$options;
}
 
// per checklist, da una query (id, value, list di chiavi|true|false)
function checkList($query,$name,$checked){
    
$check = '';
    
$ops = sqlLookup($query);
    
$i = 1;
     while (list(
$chiave, $valore) = each($ops)) {
        if (
is_array($checked )){
       
$check .= "<input type='checkbox' name='$name".$i++."' value='$chiave' ".(
       
array_search($chiave,$checked)!== false ?"checked='checked'":'')." />$valore<br />";
         } else {
       
$check .= "<input type='checkbox' name='$name".$i++."' value='$chiave' ".($checked?"checked='checked'":'')." />$valore<br />";
         }
     }
     return
$check;
}
  
// per redirect ad una nuova pagina da php
function movePage($num,$url){
   static
$http = array (
      
100 => "HTTP/1.1 100 Continue",
      
101 => "HTTP/1.1 101 Switching Protocols",
      
200 => "HTTP/1.1 200 OK",
      
201 => "HTTP/1.1 201 Created",
      
202 => "HTTP/1.1 202 Accepted",
      
203 => "HTTP/1.1 203 Non-Authoritative Information",
      
204 => "HTTP/1.1 204 No Content",
      
205 => "HTTP/1.1 205 Reset Content",
      
206 => "HTTP/1.1 206 Partial Content",
      
300 => "HTTP/1.1 300 Multiple Choices",
      
301 => "HTTP/1.1 301 Moved Permanently",
      
302 => "HTTP/1.1 302 Found",
      
303 => "HTTP/1.1 303 See Other",
      
304 => "HTTP/1.1 304 Not Modified",
      
305 => "HTTP/1.1 305 Use Proxy",
      
307 => "HTTP/1.1 307 Temporary Redirect",
      
400 => "HTTP/1.1 400 Bad Request",
      
401 => "HTTP/1.1 401 Unauthorized",
      
402 => "HTTP/1.1 402 Payment Required",
      
403 => "HTTP/1.1 403 Forbidden",
      
404 => "HTTP/1.1 404 Not Found",
      
405 => "HTTP/1.1 405 Method Not Allowed",
      
406 => "HTTP/1.1 406 Not Acceptable",
      
407 => "HTTP/1.1 407 Proxy Authentication Required",
      
408 => "HTTP/1.1 408 Request Time-out",
      
409 => "HTTP/1.1 409 Conflict",
      
410 => "HTTP/1.1 410 Gone",
      
411 => "HTTP/1.1 411 Length Required",
      
412 => "HTTP/1.1 412 Precondition Failed",
      
413 => "HTTP/1.1 413 Request Entity Too Large",
      
414 => "HTTP/1.1 414 Request-URI Too Large",
      
415 => "HTTP/1.1 415 Unsupported Media Type",
      
416 => "HTTP/1.1 416 Requested range not satisfiable",
      
417 => "HTTP/1.1 417 Expectation Failed",
      
500 => "HTTP/1.1 500 Internal Server Error",
      
501 => "HTTP/1.1 501 Not Implemented",
      
502 => "HTTP/1.1 502 Bad Gateway",
      
503 => "HTTP/1.1 503 Service Unavailable",
      
504 => "HTTP/1.1 504 Gateway Time-out"
  
);
  
header($http[$num]);
  
header ("Location: $url");
   exit;
}

?>