+ -
当前位置:首页 → 问答吧 → 新人写的一个构造SQL语句的类, 请大家指教

新人写的一个构造SQL语句的类, 请大家指教

时间:2009-08-11

来源:互联网

新手写的,还有待完善,请多家多多指教

<?php
include_once ('./configs/config_sys_adm.php');
$fileds=array('username','passwd','lasttime','go');
$tables='manager';
$definition=array('username','passwd');
$def_value=array('username','passwd');
$Op_str='=';
$order='username';
$limit=array(1,10);
$b=new DB_class();
$b=$b->query_str($fileds,$tables,$definition,$def_value,$Op_str,$order,$limit);
echo $b;
class Db_class {

function query($qurey,$Link){ //to run \"SQL query sentence\"
$qurey=$this->query_str($filed_array,$table,$definition,$order,$limit);
$Link=$this->selectDB();
$result = mysql_query($this->query_str()) or die(mysql_errno().
'Please to check your Database name & table name & fileds name');
$i=0;
if ($i<mysql_num_fields($result)){ //get table's fileds infomation
$result=mysql_fetch_assoc($result);
return $result;
}
}

function query_str($filed_array,$table,$definition,$def_values,$Op_str,$order,$limit){ //settingSQL query strings
$fileds=$this->fileds_set($filed_array);
$definition=$this->definition_set($definition,$Op_str,$def_values);
$order=$this->order_set($order);
$limit=$this->limit_set($limit);
$query=' select ' . $fileds .
' from ' . $table .
$definition .
$order .
$limit;
return $query;
}
function fileds_set($filed_array){
$fileds='';
if (is_array($filed_array)){
$cou=count($filed_array);
for ($i=0;$i<$cou;$i++){
$fileds=$fileds.$filed_array[$i].' , ';
}
$cou=strlen($fileds);
$fileds =' '.substr($fileds,0,$cou-2);
}
if (is_string($filed_array)){
$fileds=' '.$filed_array.' ';
}
if ($filed_array==''){
$fileds=' * ';
}
return $fileds;

}

function definition_set($var,$Op_str,$values){
$var_n='';
if (((is_array($var)) && (is_array($values))) && ((count($var))==(count($values)))){
$cou=count($var);
for ($i=0;$i<$cou;$i++){
$var_n.='\''.$var[$i].'\''.$Op_str.$values[$i]=$this->str_or_int($values[$i]).' , ';
}
$cou=strlen($var_n);
$var_n =substr($var_n,0,$cou-2);
$var_n=' where ('.$var_n.')';
}

if ($var==''){
$var_n='';
}
if ((is_string($var)) && (!empty($var))) {
$var_n.=' where ' . '(' . '\''.$var.'\''.$Op_str.$values=$this->str_or_int($values) . ')';
}
return $var_n;

}

function order_set($order){
$var_n='';
if (is_array($order)){
$cou=count($order);
for ($i=0;$i<$cou;$i++){
$var_n.='\''.$order[$i].'\''.' , ';
}
$cou=strlen($var_n);
$var_n =substr($var_n,0,$cou-2);
$var_n=' ORDER BY '.$var_n;
}

if (empty($order)){
$var_n='';
}
if ((is_string($order)) && (!empty($order))){
$var_n.=' ORDER BY ' . $order . ' ';
}
return $var_n;
}

function limit_set($limit){
$limit_n='';
if ((is_array($limit)) && (count($limit)===2) && (is_int($limit[0])) && (is_int($limit[1])) ) {
$limit_n=' LIMIT ' . $limit[0] . ',' . $limit[1];
}
else {
$limit_n='';
}
return $limit_n;
}

function str_or_int($value_str){
if (is_string($value_str)){
$value_str='\''.$value_str.'\'';
}
if (is_int($value_str)) {
$value_str=$value_str;
}
if (is_bool($value_str)) {
$value_str=$value_str;
}
if (is_long($value_str)) {
$value_str=$value_str;
}
if (is_null($value_str)){
$value_str='';
}
return $value_str;
}

function selectDB($DBName,$Link){ //check Database is exits or no.
$DBName=DBName;
$Link=$this->DBLink();
$rst = mysql_select_db($DBName, $Link);
if($rst === false){
echo 'Database not exits';
}
$DBName =DBName;
return $DBName;
}

function DBLink() {
$Link=mysql_connect(HostN,UserN,Pass) or die('Error:Connect to Database false!');
return $Link;
}
}
?>



[ 本帖最后由 prince 于 2009-8-11 16:43 编辑 ]

作者: prince   发布时间: 2009-08-11

人才啊

作者: 太阳神   发布时间: 2009-08-11

呵呵不好做啊

作者: wang19840811   发布时间: 2009-08-11

热门下载

更多