CMPHP/tools_sql.php

437 lines
11 KiB
PHP
Raw Normal View History

2017-02-23 15:21:34 +08:00
<?php
2016-08-21 23:06:17 +04:00
2016-09-02 14:41:18 +04:00
$global_sql=null;
2016-08-21 23:06:17 +04:00
function get_sql()
2016-08-21 23:06:17 +04:00
{
global $global_sql;
2016-08-21 23:06:17 +04:00
if($global_sql)
return $global_sql;
2016-08-21 23:06:17 +04:00
$global_sql=new mysqli($_SESSION["DB_ADDRESS"],$_SESSION["DB_USERNAME"],$_SESSION["DB_PASSWORD"],$_SESSION["DB_NAME"]);
2016-08-21 23:06:17 +04:00
if($global_sql->connect_error)
2016-08-21 23:06:17 +04:00
{
echo "Connection Database error: ".$global_sql->connect_error;
2016-08-21 23:06:17 +04:00
return null;
}
$global_sql->query("SET NAMES 'utf8'");
$global_sql->query("USE ".$_SESSION["DB_NAME"]);
2016-08-21 23:06:17 +04:00
return $global_sql;
2016-08-21 23:06:17 +04:00
}
// class SQLSelect
// {
2016-09-08 22:24:58 +04:00
// private $field_array=null;
//
// private $where=null;
// private $limit_start=0;
// private $limit_count=0;
//
// public
// };//class SQLSelect
//
// class SQLTable
// {
// private $sql=null;
// private $table_name=null;
// private $insert_id=0;
//
2016-09-08 22:24:58 +04:00
// private $field_array=null;
//
// public function __construct($s,$tn)
// {
// $this->sql=$s;
// $this->table_name=$tn;
// }
//
// public function get_field_list()
// {
2016-09-08 22:24:58 +04:00
// if($field_array)
// return $field_array;
//
// $sql_result=$this->sql->query("DESC ".$this->table_name);
//
// if(!$sql_result)
// return null;
//
// $this->field_list=array();
// while ($row = $sql_result->fetch_object())
// $this->field_list[] = $row->Field;
//
// return $this->field_list;
// }
// };//class SQLTable
//
// class SQLConnect
// {
// private $sql=null;
//
// public function __construct()
// {
// $sql=get_sql();
// }
//
// public function OpenTable($table_name)
// {
// if(!$sql)
// return(null);
//
// return(new SQLTable($sql,$table));
// }
// };//class SQLConnect
function get_field_list($sql,$table_name)
2016-08-21 23:06:17 +04:00
{
if($sql==null)return null;
$sql_result=$sql->query("DESC ".$table_name);
2016-08-21 23:06:17 +04:00
if(!$sql_result)
return null;
2016-09-08 22:24:58 +04:00
$field_array=array();
2016-08-21 23:06:17 +04:00
while ($row = $sql_result->fetch_object())
2016-09-08 22:24:58 +04:00
$field_array[] = $row->Field;
2016-08-21 23:06:17 +04:00
2016-09-08 22:24:58 +04:00
return $field_array;
2016-08-21 23:06:17 +04:00
}
2017-02-16 11:41:00 +08:00
function select_table()//$sql,$table_name,$field_array,$where,$order,$start,$count)
2016-08-21 23:06:17 +04:00
{
$sql =func_get_arg(0);
$table_name =func_get_arg(1);
2016-09-08 22:24:58 +04:00
$field_array =func_get_arg(2);
if(func_num_args()>3)$where=func_get_arg(3);else $where=null;
2017-02-16 11:41:00 +08:00
if(func_num_args()>4)$order=func_get_arg(4);else $order=null;
if(func_num_args()>5)
{
2017-02-16 11:41:00 +08:00
$start=func_get_arg(5);
$count=func_get_arg(6);
}
else
{
$start=0;
$count=0;
}
2016-08-21 23:06:17 +04:00
if($sql==null)return;
$sql_string="SELECT";
2016-08-21 23:06:17 +04:00
2016-09-08 22:24:58 +04:00
if($field_array==null)
2016-08-21 23:06:17 +04:00
{
$sql_string=$sql_string." * FROM ".$table_name;
2016-08-21 23:06:17 +04:00
}
else
{
2016-09-08 22:24:58 +04:00
for($i=0;$i<count($field_array);$i++)
2016-08-21 23:06:17 +04:00
if($i==0)
2016-09-08 22:24:58 +04:00
$sql_string=$sql_string.' '.$field_array[$i];
2016-08-21 23:06:17 +04:00
else
2016-09-08 22:24:58 +04:00
$sql_string=$sql_string.','.$field_array[$i];
2016-08-21 23:06:17 +04:00
$sql_string=$sql_string." FROM ".$table_name;
2016-08-21 23:06:17 +04:00
}
if($where!=null&&strlen($where)>3)
$sql_string=$sql_string." WHERE ".$where;
2016-08-21 23:06:17 +04:00
2017-02-16 11:41:00 +08:00
if($order!=null&&strlen($order)>3)
$sql_string=$sql_string." ORDER BY ".$order;
if($count!=0)$sql_string=$sql_string." LIMIT ".$start.",".$count;
2016-08-21 23:06:17 +04:00
$sql_result=$sql->query($sql_string);
if($sql_result)
return $sql_result;
echo 'SQL Query error,SQLString: '.$sql_string.'<br/>';
echo 'SQL Error: '.$sql->error;
return null;
}
2016-09-08 22:24:58 +04:00
function select_table_to_array()//$sql,$table_name,$field_array,$where,$start,$count)
{
$sql =func_get_arg(0);
$table_name =func_get_arg(1);
2016-09-08 22:24:58 +04:00
$field_array =func_get_arg(2);
if(func_num_args()>3)$where=func_get_arg(3);
if(func_num_args()>4)
{
$start=func_get_arg(4);
$count=func_get_arg(5);
}
else
{
$start=0;
$count=0;
}
2016-09-08 22:24:58 +04:00
$sql_result=select_table($sql,$table_name,$field_array,$where,$start,$count);
if(!$sql_result)return(null);
2016-08-21 23:06:17 +04:00
$result=array();
$index=0;
while($row=$sql_result->fetch_row())
{
$result[$index]=$row;
$index++;
}
$sql_result->close();
return $result;
}
function select_field($sql,$table_name,$field,$where)
2016-08-21 23:06:17 +04:00
{
if($sql==null)return;
$sql_string="SELECT ".$field." FROM ".$table_name." WHERE ".$where;
2016-08-21 23:06:17 +04:00
$sql_result=$sql->query($sql_string);
if(!$sql_result)
return null;
$row=$sql_result->fetch_object();
$sql_result->close();
return $row;
}
/**
* 向一个表中插入数据使用array的kv模式表示字段和数据
*/
function sql_insert()//$sql,$table_name,$data_array)
2016-08-21 23:06:17 +04:00
{
$sql=func_get_arg(0);
2016-08-21 23:06:17 +04:00
if($sql==null)return null;
$table_name=func_get_arg(1);
$data_array=func_get_arg(2);
if(func_num_args()==4)
$resultmode=func_get_arg(3);
else
$resultmode=MYSQLI_STORE_RESULT;
2016-08-21 23:06:17 +04:00
$sql_string="INSERT INTO ".$table_name." SET";
2016-08-21 23:06:17 +04:00
$count=0;
foreach($data_array as $field=>$value)
{
if($count==0)
$sql_string=$sql_string.' '.$field.'="'.$value.'"';
else
$sql_string=$sql_string.','.$field.'="'.$value.'"';
++$count;
}
2016-09-02 14:41:18 +04:00
$sql_result=$sql->query($sql_string);
if($sql_result)
return $sql_result;
echo 'SQL Insert error,SQLString: '.$sql_string.'<br/>';
echo 'SQL Error: '.$sql->error;
return null;
}
/**
* 向一个表中插入数据字段数据来自于post
*/
function sql_insert_by_post()//$sql,$table_name,$field_array [,$resultmode=MYSQLI_STORE_RESULT])
{
$sql=func_get_arg(0);
if($sql==null)return null;
$data_array=array();
$table_name=func_get_arg(1);
$field_array=func_get_arg(2);
if(func_num_args()==4)
$resultmode=func_get_arg(3);
else
$resultmode=MYSQLI_STORE_RESULT;
foreach($field_array as $field)
2016-09-02 14:41:18 +04:00
{
if(isset($_POST[$field])&&strlen($_POST[$field])>0)
$data_array[$field]=$_POST[$field];
}
return sql_insert($sql,$table_name,$data_array,$resultmode);
2016-08-21 23:06:17 +04:00
}
2016-09-08 22:24:58 +04:00
function sql_update($sql,$table_name,$where,$field_array)
{
if(!$sql)return null;
if(!$where||strlen($where)<3)return null;
if(!$field_array||!is_array($field_array)||count($field_array)<=0)return null;
$sql_string='UPDATE '.$table_name.' SET ';
$first_field=true;
foreach($field_array as $field=>$value)
{
if(!$first_field)
$sql_string.=',';
else
$first_field=false;
$sql_string.=$field.'="'.$value.'"';
}
$sql_string.=" WHERE ".$where;
// echo 'SQL Update SQLString: '.$sql_string.'<br/>';
$sql_result=$sql->query($sql_string);
if($sql_result)
return $sql_result;
echo 'SQL Update error,SQLString: '.$sql_string.'<br/>';
echo 'SQL Error: '.$sql->error;
return null;
}
function sql_update_by_post($sql,$table_name,$where,$field_array)
{
if(!$sql)return null;
if(!$where||strlen($where)<3)return null;
if(!$field_array||!is_array($field_array)||count($field_array)<=0)return null;
$data_array=array();
foreach($field_array as $field)
{
if(isset($_POST[$field])&&strlen($_POST[$field])>0)
$data_array[$field]=$_POST[$field];
}
return sql_update($sql,$table_name,$where,$data_array);
}
function sql_get_record_count($sql,$table_name,$where)
{
if(!$sql)return null;
$sql_string="select count(*) from ".$table_name;
if($where)
$sql_string.=" where ".$where;
$sql_result=$sql->query($sql_string);
if(!$sql_result)
{
echo 'Query Error,SQLString: '.$sql_string.'<br/>';
return null;
}
$result=$sql_result->fetch_row();
$sql_result->close();
return $result[0];
}
2016-12-03 12:37:15 +04:00
function sql_get_field_term($sql,$table_name,$field,$term,$where)
{
if(!$sql)return null;
2016-12-03 14:05:29 +04:00
if($where)
$sql_string="select ".$term."(".$field.") from ".$table_name." where ".$where;
2016-12-03 14:05:29 +04:00
else
$sql_string="select ".$term."(".$field.") from ".$table_name;
$sql_result=$sql->query($sql_string);
if(!$sql_result)
{
echo 'Query Error,SQLString: '.$sql_string.'<br/>';
return null;
}
$result=$sql_result->fetch_row();
$sql_result->close();
return $result[0];
}
2016-12-03 12:37:15 +04:00
function sql_get_field_min($sql,$table_name,$field,$where)
{
2016-12-03 12:37:15 +04:00
return sql_get_field_term($sql,$table_name,$field,"MIN",$where);
}
2016-12-03 12:37:15 +04:00
function sql_get_field_max($sql,$table_name,$field,$where)
{
2016-12-03 12:37:15 +04:00
return sql_get_field_term($sql,$table_name,$field,"MAX",$where);
}
2016-12-03 12:37:15 +04:00
function sql_get_field_count($sql,$table_name,$field,$where)
{
2016-12-03 12:37:15 +04:00
return sql_get_field_term($sql,$table_name,$field,"COUNT",$where);
}
2016-12-03 12:37:15 +04:00
function sql_get_field_sum($sql,$table_name,$field,$where)
{
2016-12-03 12:37:15 +04:00
return sql_get_field_term($sql,$table_name,$field,"SUM",$where);
}
2016-12-03 12:37:15 +04:00
function sql_get_field_avg($sql,$table_name,$field,$where)
{
2016-12-03 12:37:15 +04:00
return sql_get_field_term($sql,$table_name,$field,"AVG",$where);
}
function sql_get_field_distinct($sql,$table_name,$field)
{
if(!$sql)return null;
$sql_result=$sql->query("select DISTINCT(".$field.") from ".$table_name.' ORDER BY '.$field);
$result=array();
while($obj=$sql_result->fetch_row())
array_push($result,$obj[0]);
$sql_result->close();
return $result;
}
function sql_get_field_count_distinct($sql,$table_name,$field,$where)
{
if(!$sql)return null;
if($where)
$sql_result=$sql->query("select count(distinct(".$field.")) from ".$table_name." where ".$where);
else
$sql_result=$sql->query("select count(distinct(".$field.")) from ".$table_name);
$result=$sql_result->fetch_row();
$sql_result->close();
return $result[0];
}
2016-08-21 23:06:17 +04:00
?>