<?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>';
|