<?php
 
include 'CachedArray.class.php';
 
 
class MySQLTable extends CachedArray 
 
{ 
 
    private $table, $id, $data, $link; 
 
 
    function __construct($Connection, $AutoFlush=TRUE) 
 
    { 
 
        parent::__construct($AutoFlush); 
 
        preg_match('/^(([^:@\/]*):)?([^@\/]*)?(@(\w*))?\/([^\/]+)\/(.+)\(([^,]+),([^)]+)\)$/',$Connection,$matches) or die('Bad connection string');
 
        $this->link = mysql_connect($matches[5], $matches[2], $matches[3], TRUE);
 
        mysql_select_db($matches[6], $this->link);
 
        $this->table = $matches[7];
 
        $this->id = $matches[8];
 
        $this->data = $matches[9];
 
    } 
 
 
    function __destruct() 
 
    { 
 
        parent::__destruct();
 
        mysql_close($this->link);
 
    } 
 
 
    function getItem($Index) 
 
    { 
 
        $Query = mysql_query("SELECT `{$this->data}` FROM `{$this->table}` WHERE `{$this->id}`='{$Index}'", $this->link);
 
        $Fetch = mysql_fetch_row($Query);
 
        return $Fetch[0];
 
    } 
 
 
    function setItem($Index, $Value) 
 
    { 
 
        mysql_query('UPDATE `'.$this->table.'` SET `'.$this->data.'`=\''.mysql_real_escape_string($Value, $this->link).'\' WHERE `'.$this->id.'`='.$Index, $this->link);
 
    } 
 
 
    function addItem($Value=NULL) 
 
    { 
 
        mysql_query('INSERT INTO `'.$this->table.'`(`'.$this->data.'`) VALUES(\''.mysql_real_escape_string($Value, $this->link).'\')', $this->link); 
 
        if(mysql_errno($this->link)) { die(mysql_error($this->link)); }
 
        return mysql_insert_id($this->link);
 
    } 
 
 
    function delItem($Index) 
 
    { 
 
        mysql_query("DELETE FROM `{$this->table}` WHERE `{$this->id}`='{$Index}'", $this->link);
 
    } 
 
 
    function hasItem($Index) 
 
    { 
 
        $Query = mysql_query("SELECT COUNT(*) FROM `{$this->table}` WHERE `{$this->id}`='{$Index}'", $this->link); 
 
        $Fetch = mysql_fetch_row($Query);
 
        mysql_free_result($Query); 
 
        return $Fetch[0] > 0; 
 
    } 
 
 
    function items() 
 
    { 
 
        $Query = mysql_query('SELECT `'.$this->id.'` FROM `'.$this->table.'`',$this->link); 
 
        $Result = array();
 
        while($Fetch = mysql_fetch_row($Query)) { $Result[]=$Fetch[0]; }
 
        return $Result; 
 
    } 
 
} 
 
 
$table = new MySQLTable('root:/test/datas(id,data)', TRUE); 
 
$table[] = 'igor';
 
echo '<table border=1>'; 
 
foreach($table as $index => $value) echo '<tr><td>' . $index . '</td><td>' . $value . '</td></tr>'; 
 
echo '</table>';
 
 |