CMPHP/tools_sql.php

176 lines
3.9 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
}
function get_field_list($table_name)
{
$sql=get_sql();
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($table_name,$field_list,$where,$start,$count)
{
$sql=get_sql();
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);
$result=array();
$index=0;
while($row=$sql_result->fetch_row())
{
$result[$index]=$row;
$index++;
}
$sql_result->close();
return $result;
}
function select_field($table_name,$field,$where)
{
$sql=get_sql();
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()//$table_name,$data_array)
2016-08-21 23:06:17 +04:00
{
$sql=get_sql();
if($sql==null)return null;
$table_name=func_get_arg(0);
$data_array=func_get_arg(1);
if(func_num_args()==3)
$resultmode=func_get_arg(2);
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()//$table_name,$field_array [,$resultmode=MYSQLI_STORE_RESULT])
{
$sql=get_sql();
if($sql==null)return null;
$data_array=array();
$table_name=func_get_arg(0);
$field_array=func_get_arg(1);
if(func_num_args()==3)
$resultmode=func_get_arg(2);
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($table_name,$data_array,$resultmode);
2016-08-21 23:06:17 +04:00
}
?>