PHP Classes

File: index.php

Recommend this page to a friend!
  Classes of Mostafa Abd-El-Hamid   Form CRUD PDO   index.php   Download  
File: index.php
Role: Application script
Content type: text/plain
Description: CRUD PHP PDO PECL
Class: Form CRUD PDO
Insert, update, delete database records using form
Author: By
Last change: Made Modifications with Error Constants and Confirmation Constants
Date: 8 years ago
Size: 4,039 bytes
 

Contents

Class file image Download
<?php

namespace FormHandler;
use
PDO;

class
form{
        const
DSN = '';
        const
USER = '';
        const
PASSWORD = '';
                const
RETURNURL = '';
                const
ERRORUPDATE = '';
                const
ERRORDELETE = '';
                const
ERRORINSERT = '';
                const
ERRORLIST = '';
                const
ERRORCONNECT = '';
                const
ERRORINSERT = '';
                const
INSERTCONFIRM = '';
                const
ERRORSELECT = '';
               

        private function
__connect(){
            try {
               
$dbh = new \PDO(\FormHandler\form::DSN, \FormHandler\form::USER, \FormHandler\form::PASSWORD);
                return
'Connection established';
            } catch (
PDOException $e) {
                return \
FormHandler\form::ERRORCONNECT . $e->getMessage();
            }
            return
$dbh;
        }
        public static function
__init(){

           
$referer = $_SERVER['HTTP_REFERER'];
            if(
$referer !== ''){
                return \
FormHandler\Form::RETURNURL;
            }
           
$dbh = SELF::__connect();
           
$table_name = filter_var($_REQUEST['table_name'], FILTER_VALIDATE_REGEXP,array("options"=>array("regexp"=>"/^[a-zA-Z0-9]{4,122}/")));
           
$insert_array = $_REQUEST['inserst_array'];
           
$delete = $_REQUEST['delete'];
           
$edit = $_REQUEST['edit'];
           
$select = $_REQUEST['select'];
            if(isset(
$insert_array)){
               
$i = 0;
               
$arr_binder = array();
               
$insert_column_sequence = array();
                foreach(
array_keys($insert_array) as $insert_column){
                    if(
end($insert_array)){
                   
$insert_column .= $insert_column;
                    }else{
                   
$insert_column .= $insert_column . ', ';
                    }
                   
$insert_column_sequence[$i] = $insert_column;
                   
$arr_binder[$i] = ':' . $insert_column;
                   
$i++;
                }

                foreach(
array_values($insert_array) as $insert_value){
                   
$insert_value .= ' ,' . $insert_value;
                }

               
$stmt = $dbh->prepare("INSERT INTO $table_name ($insert_column) VALUES ($insert_value)");

               
$i_bind = 0;
                foreach(
$arr_binder as $arr_binding){
                   
$stmt->bindParam($arr_binding[$i_bind], $insert_column_sequence[$i_bind], PDO::PARAM_STR);
                   
$i_bind++;
                }
               
$stmt->execute();
               
$count = $stmt->rowCount();
                if(
$count === $i_bind)
                    return \
FormHandler\form::INSERTCONFIRM;
                }else{
                    return \
FormHandler\form::ERRORINSERT;
                }

            }elseif(isset(
$delete)){
               
$delete_key = $delete['key'];
               
$delete_operator = $delete['operator'];
               
$delete_value = $delete['value'];
                foreach(
$delete as $deleted){
                   
$stmt = $dbh->prepare("DELETE FROM $table_name WHERE " . ":$deleted_key " . $deleted_operator . " '$deleted_value' LIMIT 1");
                   
$stmt->bindParam(':' . $deleted['key'],$deleted['key'],PDO::PARAM_INT);
                   
$stmt->execute();
                }
                return \
FormHandler\form::DELETECONFIRM;
            }elseif(isset(
$edit)){
               
$edit_arr = array();
               
$i_edit = 0;
               
$edit_key = $edit['key'];
               
$edit_operator = $edit['where_operator'];
               
$edit_value = $edit['value'];
                foreach(
$edit as $edit_keys_values){
                   
$edit_arr[$i] = ':' . $edit_keys_values['keys'];
                   
$edit_value_to_update = $edit_keys_values['values_to_update'];
                   
$stmt = $dbh->prepare("UPDATE $table_name SET $edit_arr[$i] = $edit_value_to_update WHERE $edit_key " . $edit_operator . " '$edit_value'");
                   
$stmt->bindParam($edit_arr[$i],$edit_keys_values['values_to_update'],PDO::PARAM_STR);
                   
$stmt->execute();
                }
               
$error = $stmt->errorInfo();
                die();
            }elseif(isset(
$select)){
                foreach(
$select as $select_values){
                    if(
end($select_values)){
                       
$select_values_for_selection .= $select_values;
                    }else{
                       
$select_values_for_selection .= $select_values . ', ';
                    }
                }
               
$sql = 'SELECT ' . $selected_values_for_selection . ' FROM ' . $table_name . ' ORDER BY ' . $select['order_by_value'] . $select['order_by_order'];
                foreach (
$dbh->query($sql) as $row) {
                }
                return
$row;
            }else{
                return \
FormHandler\form::ERRORSELECT;
            }
        }
}
// Example..
//\FormHandler\form::__init();