| 
<?php
 use eftec\DaoOne;
 
 include "../vendor/autoload.php";
 include "dBug.php";
 
 // connecting to database sakila at 127.0.0.1 with user root and password abc.123
 $dao=new DaoOne("127.0.0.1","root","abc.123","sakila","logdaoone.txt");
 try {
 echo "<h1>Connection. The instance {$dao->server}, base:{$dao->db}  user:{$dao->user} and password:{$dao->pwd} must exists</h1>";
 $dao->connect();
 echo "Connected A-OK!<br>";
 } catch (Exception $e) {
 echo "<h2>connection error:</h2>";
 echo $dao->lastError()."-".$e->getMessage()."<br>";
 die(1);
 }
 $sqlT1="CREATE TABLE `typetable` (
 `type` INT NOT NULL,
 `name` VARCHAR(45) NULL,
 PRIMARY KEY (`type`));";
 
 $sqlT2="CREATE TABLE `producttype` (
 `idproducttype` INT NOT NULL,
 `name` VARCHAR(45) NULL,
 `type` int not NULL,
 PRIMARY KEY (`idproducttype`));";
 
 $now=new DateTime();
 // running a raw query (unprepared statement)
 try {
 echo "<h1>Table creation (it's ok if it fails if exists):</h1>";
 $dao->runRawQuery($sqlT1);
 echo $dao->lastQuery."<br>";
 $dao->runRawQuery($sqlT2);
 echo $dao->lastQuery."<br>";
 } catch (Exception $e) {
 echo "<h2>Table creation error:</h2>";
 echo $dao->lastError()."-".$e->getMessage()."<br>";
 }
 
 try {
 echo "<h1>Table truncate :</h1>";
 $dao->runRawQuery("truncate table typetable");
 echo $dao->lastQuery."<br>";
 $dao->runRawQuery("truncate table producttype");
 echo $dao->lastQuery."<br>";
 } catch (Exception $e) {
 echo "<h2>Table truncate error:</h2>";
 echo $dao->lastError()."-".$e->getMessage()."<br>";
 }
 
 
 
 try {
 echo "<h1>Table update:</h1>";
 
 $dao->from("producttype")
 ->set("name=?",['s','Captain-Crunch'])
 ->set("type=?",['i',6])
 ->where('idproducttype=?',['i',6])
 ->update();
 echo $dao->lastQuery."<br>";
 
 $dao->update("producttype"
 ,['name','s','type','i']
 ,['Captain-Crunch',2]
 ,['idproducttype','i']
 ,[6]);
 echo $dao->lastQuery."<br>";
 
 
 
 
 $dao->update("producttype"
 ,['name','s','type','i']
 ,['Captain-Crunch',2]
 ,['idproducttype','i']
 ,[6]);
 echo $dao->lastQuery."<br>";
 
 $dao->update("producttype"
 ,['Name'=>'Mountain Dew']
 ,['idproducttype'=>3]
 );
 echo $dao->lastQuery."<br>";
 } catch (Exception $e) {
 echo "<h2>Table update error:</h2>";
 echo $dao->lastError()."-".$e->getMessage()."<br>";
 }
 
 try {
 echo "<h1>Table delete:</h1>";
 
 $dao->from("producttype")
 ->where("`idproducttype`=?",['i',7])
 ->delete();
 echo $dao->lastQuery."<br>";
 
 $dao->from("producttype")
 ->where(['idproducttype'=>7])
 ->delete();
 echo $dao->lastQuery."<br>";
 
 $dao->delete("producttype"
 ,['idproducttype','i']
 ,[7]);
 echo $dao->lastQuery."<br>";
 $dao->delete("producttype"
 ,['idproducttype'=>8]
 );
 echo $dao->lastQuery."<br>";
 
 
 
 } catch (Exception $e) {
 echo "<h2>Table delete error:</h2>";
 echo $dao->lastError()."-".$e->getMessage()."<br>";
 }
 
 
 try {
 echo "<hr>toList:";
 $results = $dao->select("*")->from("producttype")
 ->where('name=?', ['s', 'Coca-Cola'])
 ->where('idproducttype=?', ['i', 1])
 ->toList();
 echo $dao->lastQuery;
 echo build_table($results);
 
 echo "<hr>toList using associative array:";
 $results = $dao->select("*")->from("producttype")
 ->where(['name'=>'Coca-Cola','idproducttype'=>1])
 ->toList();
 echo $dao->lastQuery;
 echo build_table($results);
 
 echo "<hr>toList using associative array:";
 $results = $dao->select("*")->from("producttype")
 ->where(['name'=>'s','idproducttype'=>'i'],
 ['name'=>'Coca-Cola','idproducttype'=>1])
 ->toList();
 echo $dao->lastQuery;
 echo build_table($results);
 
 echo "<hr>toList using associative array:";
 $results = $dao->select("*")->from("producttype")
 ->where(['name','s','idproducttype','i'],
 ['Coca-Cola',1])
 ->toList();
 echo $dao->lastQuery;
 echo build_table($results);
 
 echo "<hr>toList using associative array:";
 $results = $dao->select("*")->from("producttype")
 ->where(['name','s','Coca-Cola','idproducttype','i',1])
 ->toList();
 echo $dao->lastQuery;
 echo build_table($results);
 
 echo "<hr>toList (from join):";
 $results = $dao->select("pt.*,tt.name typetable_name")
 ->from("producttype pt")
 ->join("typetable tt on pt.type=tt.type")
 ->toList();
 echo $dao->lastQuery;
 echo build_table($results);
 
 echo "<hr>toList (join left):";
 $results = $dao->select("pt.*,tt.name typetable_name")
 ->join("producttype pt")
 ->left("typetable tt on pt.type=tt.type")
 ->toList();
 echo $dao->lastQuery;
 echo build_table($results);
 
 echo "<hr>toList (join left):";
 $results = $dao->select("pt.*,tt.name typetable_name")
 ->join("producttype pt")
 ->left("typetable tt on pt.type=tt.type")
 ->first();
 echo $dao->lastQuery;
 echo build_table($results);
 
 echo "<hr>toList: ";
 $results = $dao->select("*")->from("producttype")
 ->where('idproducttype>=?', ['i', 1])
 ->order('idproducttype desc')
 ->toList();
 echo $dao->lastQuery;
 echo build_table($results);
 
 
 echo "<hr>toResult: ";
 $resultsQuery = $dao->select("*")->from("producttype")
 ->where('name=?', ['s', 'Coca-Cola'])
 ->where('idproducttype=?', ['i', 1])
 ->toResult();
 echo $dao->lastQuery;
 $results=$resultsQuery->fetch_all(MYSQLI_ASSOC);
 echo build_table($results);
 $resultsQuery->free_result();
 
 echo "<hr>first: ";
 $results = $dao->select("*")->from("producttype")
 ->where('name=?', ['s', 'Coca-Cola'])
 ->where('idproducttype=?', ['i', 1])
 ->limit('1')
 ->first();
 echo $dao->lastQuery;
 echo build_table($results);
 
 echo "<hr>first returns nothing :";
 $results = $dao->select("*")->from("producttype")
 ->where('name=?', ['s', 'Coca-Cola'])
 ->where('idproducttype=?', ['i', 55])
 ->limit('1')
 ->first();
 echo $dao->lastQuery;
 echo "<br><pre>";
 var_dump($results);
 echo "</pre>";
 
 echo "<hr>";
 $results = $dao->select("*")->from("producttype")
 ->where('idproducttype=1')
 ->runGen();
 echo $dao->lastQuery;
 echo build_table($results);
 
 echo "<hr>";
 $results = $dao->select("*")->from("producttype p")
 ->where('idproducttype between ? and ?', ['i', 1, 'i', 3])
 ->toList();
 echo $dao->lastQuery;
 
 echo build_table($results);
 
 echo "<hr>";
 $results = $dao->select("p.type,count(*) c")->from("producttype p")
 ->group("p.type")
 ->having('p.type>?',['i',0])
 ->toList();
 echo $dao->lastQuery;
 echo build_table($results);
 
 
 } catch(Exception $ex) {
 echo $ex->getMessage();
 echo $ex->getTraceAsString();
 }
 
 
 function build_table($array){
 if (!isset($array[0])) {
 $tmp=$array;
 $array=array();
 $array[0]=$tmp;
 } // create an array with a single element
 if ($array[0]===null) {
 return "NULL<br>";
 }
 // start table
 $html = '<table style="border: 1px solid black;">';
 // header row
 $html .= '<tr>';
 foreach($array[0] as $key=>$value){
 $html .= '<th>' . htmlspecialchars($key) . '</th>';
 }
 $html .= '</tr>';
 
 // data rows
 foreach( $array as $key=>$value){
 $html .= '<tr>';
 foreach($value as $key2=>$value2){
 $html .= '<td>' . htmlspecialchars($value2) . '</td>';
 }
 $html .= '</tr>';
 }
 
 // finish table and return it
 
 $html .= '</table>';
 return $html;
 }
 |