3 require_once "persistance.php";
4 require_once "database.php";
6 class SqlCode
implements sql
, persistance
13 function __construct($code)
16 $this->date
= date('c');
17 $this->id
= 'md5:'. md5($this->code
);
20 public static function get_table_name()
25 public static function sql_select($options = NULL)
27 $table = self
::get_table_name();
28 $query = "select id, code, date from $table $options";
32 function toSQLselect()
34 $table = $this->get_table_name();
36 $query = "select id, code, date from $table where id='$id'";
40 function toSQLinsert()
42 $table = $this->get_table_name();
44 $code = str_replace("'", "''",$this->code
);
46 $query = "insert into $table (id, code, date) values ('$id', '$code', '$date')";
50 static function set_db($db)
52 if ($db instanceof PDO
) {
56 self
::$db =& new PDO($db);
58 self
::$db =& new PDO($db, $user, $password);
61 self
::$db->setAttribute(PDO
::ATTR_ERRMODE
, PDO
::ERRMODE_EXCEPTION
);
66 static function select($options = NULL, $db = NULL)
68 if (!$db) $db =& self
::$db;
69 $query = self
::sql_select($options);
70 $result = $db->query($query);
72 foreach ($result as $r) {
73 $s = new SqlCode($r['code']);
75 $s->date
= $r['date'];
81 function save($db = NULL)
83 if (!$db) $db =& self
::$db;
84 $query = $this->toSQLinsert();
86 $table = self
::get_table_name();
89 } catch (PDOException
$e) {
90 if ($db->errorCode() == "23000") { // l'id existe dans la table
91 $db->exec("delete from $table where id='$id'");
94 die($e->getMessage());
100 static function search($string, $options = NULL)
102 $options = str_replace("where", "and", $options);
103 $scripts = self
::select("where code like '%$string%' $options");
109 $db->setAttribute(PDO
::ATTR_ERRMODE
, PDO
::ERRMODE_EXCEPTION
);
110 $result = $db->query($this->code
);
114 function extractColumns()
116 eregi('create +table +[^(]+\(([^)]+)', $this->code
, $strings);
117 $columns = split(',', $strings[1]);
118 for ($i=0; $i < count($columns); $i++
) {
119 $c = new Column(firstWord($columns[$i]));