<?php /** @noinspection SqlDialectInspection */ 
/** @noinspection SqlNoDataSourceInspection */ 
 
/** @noinspection SqlResolve */ 
 
use eftec\PdoOne; 
 
include "../../vendor/autoload.php"; 
 
 
// connecting to database sakila at 127.0.0.1 with user root and password abc.123 
$dao=new PdoOne("sqlsrv","(local)","sa","ats475","prefrio",""); 
$dao->logLevel=2; 
try { 
    echo "<h1>connection. The instance 127.0.0.1, base:sakila  user:root and password:abc.123 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); 
} 
 
$sql="set nocount on; 
    CREATE TABLE dbo.product 
    ( 
    idproduct int NOT NULL IDENTITY (1, 1), 
    name varchar(50) NULL 
    )  ON [PRIMARY] 
; 
ALTER TABLE dbo.product ADD CONSTRAINT 
    PK_Table_1 PRIMARY KEY CLUSTERED  
    ( 
    idproduct 
    ) ON [PRIMARY] 
"; 
 
$now=new DateTime(); 
 
if ($dao->tableExist('product')) { 
    echo "<h1>Table product exist!</h1>"; 
} else { 
    try { 
        echo "<h1>Table creation:</h1>"; 
 
        $dao->runRawQuery($sql); 
    } catch (Exception $e) { 
        echo "<h2>Table creation error:</h2>"; 
        echo $dao->lastError()."-".$e->getMessage()."<br>"; 
    } 
 
} 
 
 
// running a raw query (unprepared statement) 
 
 
// running a prepared statement 
try { 
    echo "<h1>Inserting Cocacola (prepared)</h1>"; 
    $sql="insert into product(name) values(?)"; 
    $stmt=$dao->prepare($sql); 
    $productName="Cocacola"; 
    $stmt->bindParam(1,$productName,PDO::PARAM_STR); // s stand for string. Also i =integer, d = double and b=blob 
    $dao->runQuery($stmt); 
    $dao->runQuery($dao->prepare('select 1')); 
    echo "Last id inserted :".$dao->insert_id()."<br>"; 
} catch (Exception $e) { 
    echo "<h2>Insert Cocacola (prepared) error:</h2>"; 
    echo $dao->lastError()."-".$e->getMessage()."<br>"; 
} 
 
try { 
    echo "<h1>Inserting O'Hara (prepared)</h1>"; 
    $sql="insert into product(name) values(?)"; 
    $stmt=$dao->prepare($sql); 
    $productName="O'Hara"; 
    $stmt->bindParam(1,$productName,PDO::PARAM_STR); // s stand for string. Also i =integer, d = double and b=blob 
    $dao->runQuery($stmt); 
    echo "Last id inserted :".$dao->insert_id()."<br>"; 
} catch (Exception $e) { 
    echo "<h2>Insert (prepared) error:</h2>"; 
    echo $dao->lastError()."-".$e->getMessage()."<br>"; 
} 
 
 
// returning data (using a prepared statement) 
try { 
    echo "<h1>select (prepared)</h1>"; 
    $sql="select * from product order by name"; 
    $stmt=$dao->prepare($sql); 
    $dao->runQuery($stmt); 
 
 
 
    echo "<table><tr><th>Id</th><th>Name</th></tr>"; 
 
    // first method 
    while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) { 
        echo "<tr><td>".$row['idproduct']."</td><td>".$row['name']."</td></tr>"; 
    } 
    echo "</table><br>"; 
    // second method (fetch all fields) 
    //$allRows=$rows->fetch_all(PDO::FETCH_ASSOC); 
 
} catch (Exception $e) { 
    echo "<h1>select (prepared) error:</h1>"; 
    echo $dao->lastError()."-".$e->getMessage()."<br>"; 
} 
 
 
// running a transaction 
try { 
    echo "<h1>Insert transactional (prepared)</h1>"; 
    $sql="insert into product(name) values(?)"; 
    $dao->startTransaction(); 
    $stmt=$dao->prepare($sql); 
    $productName="Fanta"; 
    $stmt->bindParam(1,$productName,PDO::PARAM_STR); // s stand for string. Also i =integer, d = double and b=blob 
    $dao->runQuery($stmt); 
    echo "Last id inserted :".$dao->insert_id()."<br>"; 
    $dao->commit(); // end transaction 
} catch (Exception $e) { 
    echo "<h2>Insert transactional error:</h2>"; 
    echo $dao->lastError()."-".$e->getMessage()."<br>"; 
 
    $dao->rollback(); // cancel transaction 
 
} 
 
 |