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)
414 $col.=
'`'.$sub_key.
'`,';
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 $data_sort_arr=array();
559 foreach($val_col as $key_att=>$val_att)
561 switch(strtolower($key_att))
564 $data_sort_arr[]=$val_att.
' ASC';
567 $data_sort_arr[]=$val_att.
' DESC';
571 $data_sort.=implode(
',',$data_sort_arr);
574 $data_like=
' LIKE '.$val_col;
577 $data_limit_start=$val_col.
',';
580 $data_limit_max=
' '.$val_col;
585 $data_join.=
' FULL OUTER JOIN '.$key_att.
' ON '.$key.
'.'.$val_att[0].
'='.$key_att.
'.'.$val_att[1];
591 $data_join.=
' INNER JOIN '.$key_att.
' ON '.$key.
'.'.$val_att[0].
'='.$key_att.
'.'.$val_att[1];
596 $data_join.=
' INNER JOIN '.$key_att.
' ON '.$key.
'.'.$val_att[0].
'='.$key_att.
'.'.$val_att[1];
601 $data_join.=
' INNER JOIN '.$key_att.
' ON '.$key.
'.'.$val_att[0].
'='.$key_att.
'.'.$val_att[1];
615 $this->save.=(isset($data_set)?
' SET '.substr($data_set,0,-1):
'').$data_join.$data_condition.$data_like.$data_sort.(isset($data_limit_max)?
' LIMIT '.$data_limit_start.$data_limit_max :
'').
';';
638 if(empty($this->DBHost))
641 'dbhost'=>database::host,
642 'dbname'=>database::name,
643 'dbuser'=>database::user,
644 'dbpass'=>database::pass
650 'dbhost'=>$this->DBHost,
651 'dbname'=>$this->DBName,
652 'dbuser'=>$this->DBUser,
653 'dbpass'=>$this->DBPass
664 $this->
connect =
new mysqli($this->mysqli[
'dbhost'], $this->mysqli[
'dbuser'], $this->mysqli[
'dbpass'], $this->mysqli[
'dbname']);
665 if($this->
connect->connect_errno)
667 $this->mysqli[
'dberror'][
'message'] =
"Failed to connect to MySQL: (" . $this->
connect->connect_errno .
") " . $this->
connect->connect_error;
668 $this->mysqli[
'dberror'][
'code'] =
'mysqlInterface:001';
675 var_dump($this->mysqli);
688 if(!$this->
connect->multi_query($this->save))
714 if(!$this->
connect->multi_query($this->save))
716 $this->mysqli[
'dberror'][
'query'] = $this->save;
717 $this->mysqli[
'dberror'][
'message'] =
"Multi query failed: (" . $this->
connect->errno .
") " . $this->
connect->error;
718 $this->mysqli[
'dberror'][
'code'] =
'mysqlInterface:002';
725 var_dump($this->mysqli);
736 if($res = $this->
connect->store_result())
738 while ($row = $res->fetch_array())
745 while($this->
connect->more_results() && $this->
connect->next_result());
751 if(empty($hash[
'hash']))
753 $mysql =
new mysqlEdit($DBHost,$DBName,$DBUser,$DBPass);