PHP生成MYSQL语句函数

写了几个函数,可以方便的生成MYSQL语句,由于初学PHP,对PHP的函数库不是非常了解,可能会存在错误,欢迎大家指出。
简单的功能没有写成类了,感觉使用函数的方式会更简便。
[code]/*
* 创建插入数据的SQL语句
* $table_name : 表名
* $fields_arr : 字段/值数组,例如: $fields_arr = array(”Username” => “$Username”,”Password” => “$Password”);
*/
function create_insert_sql($table_name, $fields_arr) {
foreach ($fields_arr as $key=>$val) {
if (!empty($keys) && !empty($vals)) {
$keys .= “, “;
$vals .= “, “;
}
$keys .= “`$key`”;
$vals .= “'$val'”;
}
return “insert into `$table_name` ($keys) values ($vals)”;
}

/*
* 创建修改数据的SQL语句
* $table_name : 表名
* $fields_arr : 字段/值数组,例如: $fields_arr = array(”Username” => “$Username”, “Password” => “$Password”);
* $condition : SQL语句条件,例如: Where `id`='$id'
*/
function create_update_sql($table_name, $fields_arr, $condition) {
foreach ($fields_arr as $key=>$val) {
if (!empty($sql_str)) {
$sql_str .= “, “;
}
$sql_str .= “`$key`='$val'”;
}
return “Update `$table_name` SET $sql_str $condition”;
}

/*
* 创建SQL搜索子句
* $search_arr : SQL搜索数组
* $par_junk : and , 将返回 and (…) 形式子句
* or , 将返回 or (…) 形式子句
* 空 , 将返回 … 子句
* 例 :
* $search_arr[] = array( “field” => “title”, “keyword” => “aa”, “condition” => “like”, “junk” => “and” );
* $search_arr[] = array( “field” => “title”, “keyword” => “bb”, “condition” => “=”, “junk” => “or” );
* $search_arr[] = array( “field” => “title”, “keyword” => “cc”, “condition” => “>”, “junk” => “and” );
* create_search_sql($search_arr,”and”)
* 将返回 : and (`title` like '%aa%' or `title`='bb' and `title`>'cc')
* 注 :
* 数组各字段不能为空
* field 字段名
* keyword 搜索关键字
* condition 查询条件 like , = , > , < , <>
* junk 条件查询关系 and , or
*/
function create_search_sql($search_arr,$par_junk=”") {
$first = true;
foreach ($search_arr as $key=>$val) {
if (is_array($val)) {
$junk = ($val[”junk”]!=”and” && $val[”junk”]!=”or”) ? “” : $val[”junk”];
$field = $val[”field”];
$condition = $val[”condition”];
$keyword = $val[”keyword”];
if (!empty($field) && !empty($condition) && !empty($keyword)) {
if ($first) {
$junk = “”;
$first = false;
}
else {
$junk = ” $junk”;
}
switch ($condition) { // like , < , > , = , <> ,
case “like”:
$sql_clause .= “$junk `$field` like '%$keyword%'”;
break;
case “<":
case ">“:
case “=”:
case “<>“:
$sql_clause .= “$junk `$field`$condition'$keyword'”;
break;
}
}
}
}
if (!empty($sql_clause) && ($par_junk==”and” || $par_junk==”or”)) {
$sql_clause = “$par_junk ($sql_clause)”;
}
return $sql_clause;
}[/code]

One Response to “PHP生成MYSQL语句函数”

  1. 一个人 Says:

    嘿嘿!代码不熟!
    明天去广州!
    你还在广州吗”

发页文章评论

Theme Brought to you by Directory Journal and Elegant Directory