PDO Custom Class

Costas

Administrator
Staff member
PDO - PHP Data Objects - is a database access layer providing a uniform method of access to multiple databases.
Re-introducing PDO – the Right Way to Access Databases in PHP - http://www.sitepoint.com/re-introducing-pdo-the-right-way-to-access-databases-in-php/

Mysql Database access using PDO - http://agalaxycode.blogspot.in/2015/10/mysql-database-access-using-pdo.html

Why you Should be using PHP's PDO for Database Access - http://code.tutsplus.com/tutorials/why-you-should-be-using-phps-pdo-for-database-access--net-12059

The following database drivers are available:

[*]PDO_DBLIB ( FreeTDS / Microsoft SQL Server / Sybase )
[*]PDO_FIREBIRD ( Firebird/Interbase 6 )
[*]PDO_IBM ( IBM DB2 )
[*]PDO_INFORMIX ( IBM Informix Dynamic Server )
[*]PDO_MYSQL ( MySQL 3.x/4.x/5.x )
[*]PDO_OCI ( Oracle Call Interface )
[*]PDO_ODBC ( ODBC v3 (IBM DB2, unixODBC and win32 ODBC) )
[*]PDO_PGSQL ( PostgreSQL )
[*]PDO_SQLITE ( SQLite 3 and SQLite 2 )
[*]PDO_4D ( 4D )
 
All of these drivers are not necessarily available on your system; here's a quick way to find out which drivers you have:

JavaScript:
print_r(PDO::getAvailableDrivers());

 
 

JavaScript:
//config_pdo.php
<?php  

function connect_mysql() {
	$mysql_hostname = "localhost";
	$mysql_user = "x";
	$mysql_password = "x";
	$mysql_database = "x"; 
	
	$dbh = new PDO("mysql:host=$mysql_hostname;dbname=$mysql_database", $mysql_user, $mysql_password, 
  array(
    PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
    PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"
  ));

  return $dbh;
}

function connect_sqlite() {
	//if doesnt exist, will created.
	$dbh = new PDO('sqlite:dbase.db');
	
	return $dbh;
}

function getScalar($db, $sql, $params) {
	if ($stmt = $db -> prepare($sql)) {

		$stmt->execute($params);

		return $stmt->fetchColumn();
	} else
		return 0;
}

function getRow($db, $sql, $params) {
	if ($stmt = $db -> prepare($sql)) {

		$stmt->execute($params);

		return $stmt->fetch();
	} else
		return 0;
}

function getSet($db, $sql, $params) {
	if ($stmt = $db -> prepare($sql)) {

		$stmt->execute($params);

		return $stmt->fetchAll(PDO::FETCH_ASSOC);
//		return $stmt->fetchAll();
	} else
		return 0;
}

function executeSQL($db, $sql, $params) {
	if ($stmt = $db -> prepare($sql)) {

		$stmt->execute($params);

		return $stmt->rowCount();
	} else
		return false;
}
?>



 

 
source - http://stackoverflow.com/a/2418514/1320686
When should I use require vs. include?
When should I use require_once vs. require?

The answer to 1
The require() function is identical to include(), except that it handles errors differently. If an error occurs, the include() function generates a warning, but the script will continue execution. The require() generates a fatal error, and the script will stop.
 
The answer to 2
The require_once() statement is identical to require() except PHP will check if the file has already been included, and if so, not include (require) it again.
 

 

JavaScript:
//sample.php
<?php

require_once("config_pdo.php");

$db = connect_mysql();

$user_id = 3;
$a = 1;
$names ="";

//example 1
$rows = getSet($db, "select * from users where user_id>? and user_is_active=?", array($user_id,$a)); //always pass as array, when not have parameters pass plain null

foreach($rows as $row) {
	$names .= $row['user_name'] . ", ";
}

//example 2
$field = = getScalar($db, "select user_working_hour_id from user_working_hours where date_end is null and user_id=? order by user_working_hour_id DESC limit 1",array($user_id));

if(!$field ) //when the variable is not filled
	echo "error";
else 
	echo $field;

//example 3
$row = getRow($db, "select * from user_working_hours where date_end is null and user_id=? order by user_working_hour_id DESC limit 1",array($user_id));
	
if(!$row)  //when the variable is not filled
	echo "error";
else 
	echo $r["user_working_hours_start"];
 
 

Social Network with PHP and Laravel (AUG2015)
https://www.youtube.com/playlist?list=PLfdtiltiRHWGGxaR6uFtwZnnbcXqyq8JD


Codecanyon - Simple Database Abstraction for PHP and MySQL
http://codecanyon.net/item/simple-database-abstraction-for-php-and-mysql/


Codecanyon - cQL - Best SQL (pdo - mysqli - mysql) Cache Class
http://codecanyon.net/item/cql-best-sql-pdo-mysqli-mysql-cache-class/10102363
 
Top