/ Published in: PHP
                    
                                        
This is a simple class to encapsulate CURD functions. This class also includes some simple search methods.
                
                            
                                Expand |
                                Embed | Plain Text
                            
                        
                        Copy this code and paste it in your HTML
<?php
// Author: Emilio Cavazos
// Date: 4/21/2007
// Notes: Encapsulate mysql functionality (simple code for simple tasks)
//
// ==============
// example usage
// ==============
//
// // contact db parameters
// $contact['first_name'] = $_POST['first_name'];
// $contact['last_name'] = $_POST['last_name'];
// $contact['office_phone'] = $_POST['office_phone'];
// $contact['mobile_phone'] = $_POST['mobile_phone'];
// $contact['email'] = $_POST['email'];
// // insert contact
// $dal->updateById('contacts', $contact, 'id', $_GET['con_id']);
class DataAccessLayer
{
// connection variables
private $_server = 'localhost';
private $_username = 'root';
private $_password = '';
private $_database = 'db';
public $debug = false;
// connection
private $_conn;
function __construct() {
$this->_conn = new mysqli($this->_server, $this->_username, $this->_password, $this->_database);
// check connection
}
// change character set to utf8
if (!$this->_conn->set_charset('utf8')) {
}
}
function __destruct() {
$this->_conn->close();
}
// print error
public function error() {
return $this->_conn->errno . ': ' . $this->_conn->error;
}
// count all rows - return int
public function totalRows($field, $table) {
$sql = 'select ' . $field . ' from '
. $table;
$result = $this->_conn->query($sql);
// execute query
return $result->num_rows;
}
public function query($sql) {
// output sql sting for debugging
// crude debugging
if($this->debug) {
echo '<h3>Query</h3>';
echo '<div>';
echo $sql;
echo '</div>';
}
// execute query
return $this->_conn->query($sql);
}
public function queryLimit($sql, $page, $pageCount) {
$sql .= ' limit ' . $page . ', ' . $pageCount;
// execute query
return $this->query($sql);
}
public function nonQuery($sql) {
// execute query
$this->query($sql);
return $this->_conn->affected_rows;
}
public function select($table) {
$sql = 'select * from '
. $table;
// execute query
return $this->query($sql);
}
public function selectFields($table, $parameters) {
$sql = 'select ';
// build column names
foreach ($parameters as $key => $value) {
$sql .= $value;
$sql .= ', ';
}
}
$sql .= ' from ' . $table;
// execute query
return $this->query($sql);
}
public function selectById($table, $idName, $idValue) {
$sql = 'select * from '
. $table
. ' where '
. $idName
. ' = '
. $idValue;
// execute query
return $this->query($sql);
}
public function selectByIdOrder($table, $idName, $idValue, $order) {
$sql = 'select * from '
. $table
. ' where '
. $idName
. ' = '
. $idValue
. ' order by ' . $order;
// execute query
return $this->query($sql);
}
public function selectWhere($table, $parameters, $where) {
$sql = 'select ';
// build column names
foreach ($parameters as $key => $value) {
$sql .= $value;
$sql .= ', ';
}
}
$sql .= ' from ' . $table
.= ' where ' . $where;
// execute query
return $this->query($sql);
}
public function selectWhereOrder($table, $where, $order) {
$sql = 'select *'
. ' from ' . $table
. ' where ' . $where
. ' order by ' . $order;
// execute query
return $this->query($sql);
}
public function selectFieldsWhereOrder($table, $parameters, $where, $order) {
$sql = 'select ';
// build column names
foreach ($parameters as $key => $value) {
$sql .= $value;
$sql .= ', ';
}
}
$sql .= ' from ' . $table
. ' where ' . $where
. ' order by ' . $order;
// execute query
return $this->query($sql);
}
public function selectOrder($table, $order) {
$sql = 'select * from '
. $table
. ' order by ' . $order;
// execute query
return $this->query($sql);
}
public function selectFieldsOrder($table, $parameters, $order) {
$sql = 'select ';
// build column names
foreach ($parameters as $key => $value) {
$sql .= $value;
$sql .= ', ';
}
}
$sql .= ' from ' . $table
.= ' order by ' . $order;
// execute query
return $this->query($sql);
}
//public function selectWhereOrder($table, $parameters, $where, $order)
// search query
public function search($table, $fieldsToSearch, $search) {
$sql = 'select *';
$sql .= ' from ' . $table . ' where ';
// search columns for a match
foreach($searchWords as $wKey => $wValue) {
$sql .= '(';
foreach ($fieldsToSearch as $key => $value) {
$sql .= $value . ' like \'%' . $wValue . '%\'';
$sql .= ' or ';
}
}
$sql .= ') and ';
} else {
$sql .= ')';
}
}
// execute query
return $this->query($sql);
}
// search by fields query
public function searchFields($table, $fields, $fieldsToSearch, $search) {
$sql = 'select ';
// build column names
foreach ($fields as $key => $value) {
$sql .= $value;
$sql .= ', ';
}
}
$sql .= ' from ' . $table . ' where ';
// search columns for a match
foreach($searchWords as $wKey => $wValue) {
$sql .= '(';
foreach ($fieldsToSearch as $key => $value) {
$sql .= $value . ' like \'%' . $wValue . '%\'';
$sql .= ' or ';
}
}
$sql .= ') and ';
} else {
$sql .= ')';
}
}
// execute query
return $this->query($sql);
}
// search query
public function searchKeyConstrain($table, $fieldsToSearch, $search, $keyId, $keyValue) {
$sql = 'select *';
$sql .= ' from ' . $table . ' where ';
// search columns for a match
foreach($searchWords as $wKey => $wValue) {
$sql .= '(';
foreach ($fieldsToSearch as $key => $value) {
$sql .= $value . ' like \'%' . $wValue . '%\'';
$sql .= ' or ';
}
}
$sql .= ') and ';
} else {
$sql .= ')';
}
}
$sql .= ' and ' . $keyId . ' = ' . $keyValue;
// execute query
return $this->query($sql);
}
// search custom query
public function searchQuery($sql, $fieldsToSearch, $search) {
$sql .= ' where ';
// search columns for a match
foreach($searchWords as $wKey => $wValue) {
$sql .= '(';
foreach ($fieldsToSearch as $key => $value) {
$sql .= $value . ' like \'%' . $wValue . '%\'';
$sql .= ' or ';
}
}
$sql .= ') and ';
} else {
$sql .= ')';
}
}
// execute query
return $this->query($sql);
}
// search custom query
public function searchQueryOrder($sql, $fieldsToSearch, $search, $order) {
$sql .= ' where ';
// search columns for a match
foreach($searchWords as $wKey => $wValue) {
$sql .= '(';
foreach ($fieldsToSearch as $key => $value) {
$sql .= $value . ' like \'%' . $wValue . '%\'';
$sql .= ' or ';
}
}
$sql .= ') and ';
} else {
$sql .= ')';
}
}
$sql .= $order;
// execute query
return $this->query($sql);
}
// todo: add trim function to values
public function insert($table, $parameters) {
$sql = 'insert into '
. $table
. ' (';
// build column names
foreach ($parameters as $key => $value) {
$sql .= $key;
$sql .= ', ';
}
}
$sql .= ') values (';
// build values for columns
foreach ($parameters as $key => $value) {
$sql .= '\'' . $value . '\'';
$sql .= ', ';
}
}
$sql .= ') ';
// execute query
$this->query($sql);
return $this->_conn->insert_id;
}
public function insertQuery($sql) {
// execute query
$this->query($sql);
return $this->_conn->insert_id;
}
//public function insertSafe($table, $parameters, $types)
// todo: add trim function to values
public function updateById($table, $parameters, $idName, $idValue) {
$sql = 'update '
. $table
. ' set ';
// build column value pairs
foreach ($parameters as $key => $value) {
$sql .= $key . ' = \'' . $value . '\'';
$sql .= ', ';
}
}
$sql .= ' where '
. $idName . ' = ' . $idValue;
// execute query
$this->query($sql);
return $this->_conn->affected_rows;
}
public function updateWhere($table, $parameters, $what, $wValue) {
$sql = 'update '
. $table
. ' set ';
// build column value pairs
foreach ($parameters as $key => $value) {
$sql .= $key . ' = \'' . $value . '\'';
$sql .= ', ';
}
}
$sql .= ' where '
. $what . ' = \'' . $wValue . '\'';
// execute query
$this->query($sql);
return $this->_conn->affected_rows;
}
public function deleteById($table, $idName, $idValue) {
$sql = 'delete from '
. $table
. ' where '
. $idName . ' = ' . $idValue;
// execute query
$this->query($sql);
return $this->_conn->affected_rows;
}
}
?>
Comments
 Subscribe to comments
                    Subscribe to comments
                
                