CMPHP/tools_sql.php

277 lines
6.4 KiB
PHP
Raw Normal View History

2016-08-21 23:06:17 +04:00
<?php
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: ".$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
// {
// private $field_list=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;
//
// private $field_list=null;
//
// public function __construct($s,$tn)
// {
// $this->sql=$s;
// $this->table_name=$tn;
// }
//
// public function get_field_list()
// {
// if($field_list)
// return $field_list;
//
// $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;
$field_list=array();
while ($row = $sql_result->fetch_object())
$field_list[] = $row->Field;
return $field_list;
}
function select_table()//$sql,$table_name,$field_list,$where,$start,$count)
2016-08-21 23:06:17 +04:00
{
$sql =func_get_arg(0);
$table_name =func_get_arg(1);
$field_list =func_get_arg(2);
if(func_num_args()>3)$where=func_get_arg(3);else $where=null;
if(func_num_args()>4)
{
$start=func_get_arg(4);
$count=func_get_arg(5);
}
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
if($field_list==null)
{
$sql_string=$sql_string." * FROM ".$table_name;
2016-08-21 23:06:17 +04:00
}
else
{
for($i=0;$i<count($field_list);$i++)
if($i==0)
$sql_string=$sql_string.' '.$field_list[$i];
else
$sql_string=$sql_string.','.$field_list[$i];
$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
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;
}
function select_table_to_array()//$sql,$table_name,$field_list,$where,$start,$count)
{
$sql =func_get_arg(0);
$table_name =func_get_arg(1);
$field_list =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;
}
$sql_result=select_table($sql,$table_name,$field_list,$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
}
?>