Object Oriented Style


<!DOCTYPE html><html><head>
<style type="text/css">
   table, td {border: 1px solid;}
</style></head><body>
<?php
// ****** 1. Database Connection
$S=new mysqli("localhost","root","password","testDB");
if ($S->connect_errno) {
   echo "Connect failed: ".$S->connect_error;
   exit();
}


// ****** 2. Table Definition & Data Management
$S->query("
DROP TABLE IF EXISTS tbl, tmp");

$S->query("
CREATE TABLE tbl (
   a INT,
   b VARCHAR(20))");

$S->query("
CREATE TABLE tmp LIKE tbl");

$S->query("
INSERT INTO tbl VALUES 
   (1,'Hello World'),
   (2,'Testing 123'),
   (3,'Good Day!'),
   (4,'How Are You?'),
   (5,'Good Luck!')");
   
$S->query("
INSERT INTO tmp
SELECT * FROM tbl");

echo $S->error."<br/>";


// ****** 3. Data Retrieval by HANDLER
$S->query("HANDLER tbl OPEN");
tabulate($S->query(
              "HANDLER tbl READ FIRST WHERE a>=2 LIMIT 2"));
tabulate($S->query(
              "HANDLER tbl READ NEXT WHERE a>=2 LIMIT 2"));
$S->query("HANDLER tbl CLOSE");


// ****** 4. Data Retrieval by multi_query()
$S->multi_query("
SELECT * FROM tbl WHERE a>1 AND a<5;
SELECT * FROM tbl WHERE a>2 AND a<4;");
do{
   tabulate($S->store_result());
} while ($S->next_result());


// ****** A useful, general-purpose result printer
function tabulate($result){
   $fInfo = $result->fetch_fields();
   echo "<table><tr>";
   foreach($fInfo as $col){
      echo "<td>".$col->name."</td>";
   }
   while ($row = $result->fetch_row()){
      echo "</tr><tr>";
      foreach ($row as $val){
	     echo "<td>".$val."</td>";
	  }
   }
   echo "</tr></table><br/>";
}?>
</body>
</html>

a b
2 Testing 123
3 Good Day!

a b
4 How Are You?
5 Good Luck!

a b
2 Testing 123
3 Good Day!
4 How Are You!

a b
3 Good Day!