<?php
use eftec\DaoOne;
use mapache_commons\Collection;
include "../vendor/autoload.php";
include "Collection.php";
include "dBug.php";
echo "<body><div style='width:600px'>";
// 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 because it could exist):</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 "<hr>toList (raw query):";
$results = $dao->runRawQuery("select * from producttype where name=?",['s', 'Coca-Cola'],true);
echo $dao->lastQuery;
echo Collection::generateTable($results);
echo "<hr>toList:";
$results = $dao->select("*")->from("producttype")
->where('name=?', ['s', 'Coca-Cola'])
->where('idproducttype=?', ['i', 1])
->toList();
echo $dao->lastQuery;
echo Collection::generateTable($results);
echo "<hr>toList without where:";
$results = $dao->select("*")->from("producttype")
->toList();
echo $dao->lastQuery;
echo Collection::generateTable($results);
echo "<hr>toList:";
$results = $dao->select("*")->from("producttype")
->where("name='Coca-Cola'")
->toList();
echo $dao->lastQuery;
echo Collection::generateTable($results);
echo "<hr>toList using associative array:";
$results = $dao->select("*")->from("producttype")
->where(['name'=>'Coca-Cola','idproducttype'=>1])
->toList();
echo $dao->lastQuery;
echo Collection::generateTable($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 Collection::generateTable($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 Collection::generateTable($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 Collection::generateTable($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 Collection::generateTable($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 Collection::generateTable($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 Collection::generateTable($results);
echo "<hr>toList: ";
$results = $dao->select("*")->from("producttype")
->where('idproducttype>=?', ['i', 1])
->order('idproducttype desc')
->toList();
echo $dao->lastQuery;
echo Collection::generateTable($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 Collection::generateTable($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 Collection::generateTable($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 Collection::generateTable($results);
echo "<hr>";
$results = $dao->select("*")->from("producttype p")
->where('idproducttype between ? and ?', ['i', 1, 'i', 3])
->toList();
echo $dao->lastQuery;
echo Collection::generateTable($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 Collection::generateTable($results);
} catch(Exception $ex) {
echo $ex->getMessage();
echo $ex->getTraceAsString();
}
echo "</div></body>";
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;
}
|