27 public function __construct($DBHost=null,$DBName=null,$DBUser=null,$DBPass=null)
31 $this->DBHost = $DBHost;
32 $this->DBName = $DBName;
33 $this->DBUser = $DBUser;
34 $this->DBPass = $DBPass;
36 if(($this->DBHost!=
'')&&($this->DBUser!=
'')&&($this->DBPass!=
'')&&($this->DBName!=
''))
38 $this->checksum=md5($this->DBHost.$this->DBUser.$this->DBPass.$this->DBName);
40 $this->con = mysql_connect($this->DBHost, $this->DBUser, $this->DBPass);
43 die(
"<b>core_sql: MySQL connection failed!</b> ".mysql_error());
45 mysql_select_db($this->DBName, $this->con);
54 final public function query($sql)
56 return mysql_query($sql);
64 final public function write($sql)
66 return $this->
query($sql);
75 return mysql_close($this->con);
82 final public function test()
84 if($this->checksum==md5($this->DBHost.$this->DBUser.$this->DBPass.$this->DBName))
103 $handle = fopen(
"firststart.json",
"r");
104 $contents = fread($handle, filesize($filename));
106 $contents = json_decode($contents,
false);
107 if(md5($_SERVER[
'SERVER_NAME'].$_SERVER[
'SERVER_ADDR'].$this->DBHost.$this->DBUser.$type)!=$contents->hash)
109 die(
'Integrity_Error: Illegal system operation!');
146 $this->construct .=
' , `'.$name.
'` '.strtoupper($type).
'';
155 $this->table = $name;
164 $this->key .=
' , UNIQUE KEY `'.$this->table.
'` (`'.$keyName.
'`)';
171 public function createTable($name)
173 $this->table = $name;
174 $this->
query(
'CREATE TABLE IF NOT EXISTS `'.$name.
'` ( `id` INT NOT NULL AUTO_INCREMENT, PRIMARY KEY(`id`)'.$this->construct.
');');
175 $this->construct = null;
184 $this->table = $name;
185 $this->sql=
"SHOW COLUMNS FROM ".$this->DBName.
".".$this->table;
186 $this->con=mysql_connect($this->DBHost,$this->DBUser,$this->DBPass);
187 mysql_select_db($this->DBName, $this->con);
188 $this->result=mysql_query($this->sql);
190 while($row=mysql_fetch_array($this->result))
192 $this->column.=
'`'.$row[
'Field'].
'`,';
201 public function insert($values)
203 $this->
query(
'INSERT INTO '.$this->table.
' ('.substr($this->column, 0, -1).
') VALUES (null,'.$values.
');');
211 public function set($column,$value)
213 if(is_numeric($value))
215 $this->setupdate.=
'`'.$column.
'`='.$value.
',';
219 $this->setupdate.=
'`'.$column.
'`="'.$value.
'",';
229 public function update($if,$sets=null)
231 $this->
query(
'UPDATE '.$this->table.
' SET '.substr($this->setupdate, 0, -1).$sets.
' WHERE '.$if.
';');
240 public function delete($if)
244 $this->
query(
'DELETE FROM `'.$this->table.
'` WHERE `id`>0;');
248 $this->
query(
'DELETE FROM `'.$this->table.
'` WHERE '.$if.
';');
259 public function output($if=
"`id`>0",$order=
"`id` ASC",$limit=1000)
261 $this->sql=
"SELECT * FROM `".$this->table.
"` WHERE ".$if.
" ORDER BY ".$order.
" LIMIT ".$limit.
";";
262 $this->con=mysql_connect($this->DBHost,$this->DBUser,$this->DBPass);
263 mysql_select_db($this->DBName, $this->con);
264 $this->result=mysql_query($this->sql);
265 $this->colout=explode(
",",str_replace(
"`",
"",substr($this->column, 0, -1)));
268 $this->out = array(
'header'=>$this->colout,
'line'=>array(array()));
269 $this->csum = md5($this->con);
270 while($row=mysql_fetch_array($this->result))
274 foreach($this->colout as $val)
276 $this->out[
'line'][$j][$i++]=$row[$val];
330 public function dbCreateTable($array)
332 $foreignGenerator=
'';
333 foreach($array as $key=>$val)
335 foreach($val as $key_col=>$val_col)
339 foreach($val_col as $key_att=>$val_att)
341 switch(strtolower($key_att))
344 $data.=strtoupper($val_col[$key_att]);
347 $data.=($val_col[$key_att]===
false ?
' NOT NULL' :
'');
349 case 'auto_increment':
350 $data.=($val_col[$key_att]===
false ?
'' :
' AUTO_INCREMENT');
353 $data.=($val_col[$key_att]===
false ?
'' :
',PRIMARY KEY ('.$key_col.
')');
356 if(is_string($val_att))
358 $this->
query(
'SET foreign_key_checks = 1');
359 $data.=($val_col[$key_att]===
false ?
'' :
',FOREIGN KEY ('.$key_col.
') REFERENCES '.$val_att);
363 foreach($val_att as $key_val_att=>$sub_val_att)
365 $foreignGenerator = $this->addForeignKey($key, $key_val_att, $key_col, $sub_val_att);
371 $data.=($val_col[$key_att]===
false ?
'' :
',UNIQUE KEY ('.$key_col.
')');
375 $this->construct .=
',`'.$key_col.
'` '.$data.
'';
377 $this->save .=
'CREATE TABLE IF NOT EXISTS `'.$key.
'` ('.substr($this->construct,1).
');'.$foreignGenerator;
388 private function addForeignKey($masterTable, $referenceTable, $master, $reference)
390 $construct =
"SET foreign_key_checks=1;";
391 $construct .=
"ALTER TABLE $masterTable ADD FOREIGN KEY ($master) REFERENCES $referenceTable ($reference);";
405 public function insert($array,$stringRewrite=
true)
407 foreach($array as $key=>$val)
409 $this->save.=
'INSERT INTO `'.$key.
'`';
412 foreach($val as $sub_key=>$sub_val)
415 if((is_string($sub_val))&&($stringRewrite))
417 $values.=
"'".$sub_val.
"',";
421 $values.=$sub_val.
',';
424 $col=substr($col, 0, -1);
425 $values=substr($values, 0, -1);
428 $this->save.=$col.$values.
';';
442 public function filter($def)
444 foreach($def as $key=>$val)
446 foreach($val as $sub_key=>$sub_val)
448 $this->
default.=$val.
'.'.$sub_val.
',';
451 $this->
default=substr($this->
default,0,-1);
474 public function update($array)
476 $this->
select($array,
true);
507 public function select($array,$update=
false)
509 if(empty($this->
default))
513 foreach($array as $key=>$val)
517 $this->save.=
'UPDATE `'.$key.
'` ';
521 $this->save.=
'SELECT '.$this->default.
' FROM `'.$key.
'` ';
524 foreach($val as $key_col=>$val_col)
528 switch(strtolower($key_col))
533 $data_condition.=
' WHERE ';
534 foreach($val_col as $key_att=>$val_att)
536 switch(strtolower($key_att))
539 $data_condition.=$val_att;
542 $data_condition.=
' OR '.$val_att;
545 $data_condition.=
' AND '.$val_att;
551 $data_condition.=
' BETWEEN '.$key_att.
' AND '.$val_att;
554 $data_set.=$key_att.
'='.$val_att.
',';
557 $data_sort=
' ORDER BY ';
558 foreach($val_col as $key_att=>$val_att)
560 switch(strtolower($key_att))
563 $data_sort.=$val_att.
' ASC';
566 $data_sort.=$val_att.
' DESC';
572 $data_like=
' LIKE '.$val_col;
575 $data_limit_start=$val_col.
',';
578 $data_limit_max=
' '.$val_col;
583 $data_join.=
' FULL OUTER JOIN '.$key_att.
' ON '.$key.
'.'.$val_att[0].
'='.$key_att.
'.'.$val_att[1];
589 $data_join.=
' INNER JOIN '.$key_att.
' ON '.$key.
'.'.$val_att[0].
'='.$key_att.
'.'.$val_att[1];
594 $data_join.=
' INNER JOIN '.$key_att.
' ON '.$key.
'.'.$val_att[0].
'='.$key_att.
'.'.$val_att[1];
599 $data_join.=
' INNER JOIN '.$key_att.
' ON '.$key.
'.'.$val_att[0].
'='.$key_att.
'.'.$val_att[1];
613 $this->save.=(isset($data_set)?
' SET '.substr($data_set,0,-1):
'').$data_condition.$data_like.$data_sort.(isset($data_limit_max)?
' LIMIT '.$data_limit_start.$data_limit_max :
'').
';';
627 if(empty($this->DBHost))
630 'dbhost'=>database::host,
631 'dbname'=>database::name,
632 'dbuser'=>database::user,
633 'dbpass'=>database::pass
639 'dbhost'=>$this->DBHost,
640 'dbname'=>$this->DBName,
641 'dbuser'=>$this->DBUser,
642 'dbpass'=>$this->DBPass
653 $this->
connect =
new mysqli($this->mysqli[
'dbhost'], $this->mysqli[
'dbuser'], $this->mysqli[
'dbpass'], $this->mysqli[
'dbname']);
654 if($this->
connect->connect_errno)
656 $this->mysqli[
'dberror'][
'message'] =
"Failed to connect to MySQL: (" . $this->
connect->connect_errno .
") " . $this->
connect->connect_error;
657 $this->mysqli[
'dberror'][
'code'] =
'mysqlInterface:001';
664 var_dump($this->mysqli);
677 if(!$this->
connect->multi_query($this->save))
703 if(!$this->
connect->multi_query($this->save))
705 $this->mysqli[
'dberror'][
'query'] = $this->save;
706 $this->mysqli[
'dberror'][
'message'] =
"Multi query failed: (" . $this->
connect->errno .
") " . $this->
connect->error;
707 $this->mysqli[
'dberror'][
'code'] =
'mysqlInterface:002';
714 var_dump($this->mysqli);
725 if($res = $this->
connect->store_result())
727 while ($row = $res->fetch_array())
734 while($this->
connect->more_results() && $this->
connect->next_result());
740 if(empty($hash[
'hash']))
742 $mysql =
new mysqlEdit($DBHost,$DBName,$DBUser,$DBPass);
select($array, $update=false)
newColumn($name, $type="INT")
__construct($DBHost=null, $DBName=null, $DBUser=null, $DBPass=null)