1. 程式人生 > >php封裝一個連結資料庫的函式(增刪改查)

php封裝一個連結資料庫的函式(增刪改查)

1。我們封裝一個簡單的資料庫的增刪改查函式,方便使用

我們先寫一個config檔案來使用裡面是你資料庫的資訊

<?php
define('DB_HOST' , 'localhost');
define('DB_USER' , 'root');
define('DB_PWD' , '');
define('DB_NAME' , 'test');
define('DB_CHARSET' , 'utf8');

接下來我們寫個看封裝好的函式:

<?php
    /*
*@parme string $host
*@parme string $user
*@parme String $pwd
*@prame string $charset
*@prame string $name
*@prame string $table
*@prame array $data
*
*
*/

function connect($host , $user , $pwd , $charset , $name)
{
    $link = mysqli_connect($host , $user , $pwd);

    if (!$link) {
        //exit('資料庫連結失敗');
        return false;
    }

    mysqli_set_charset($link , $charset);

    if (!mysqli_select_db($link , $name)) {
        return false;
    }

    return $link;
}


function insert($link , $table , $data)
{
    //insert into $table(欄位1,欄位2 。。。) values(值1,值2,,,,,)
    //資料是從post提交過來的
    //var_dump($data);
    $keys = array_keys($data); //就是資料庫的欄位

    //var_dump($keys);  //username , password , sex
    $fields = join(',' , $keys);

    //var_dump($fields);
    $value = array_values($data); //獲取就是要插入的資料的值

    $values = join(',' , parseValue($value));

    $sql = "insert into $table($fields) values($values)";
    //var_dump($sql);

    $result = mysqli_query($link , $sql);

    if ($result && mysqli_affected_rows($link)) {
        return mysqli_insert_id($link);
    } else {
        return false;
    }

}


//處理值為字串的情況 用引號引起來
function parseValue($data)
{
    if (is_string($data)) {
        $data = '\''.$data.'\'';
    } else if (is_array($data)) {
        $data = array_map('parseValue' ,$data);
    } else if (is_null($data)) {
        $data = null;
    }
    return $data;
}


function update($link , $table , $data , $where)
{
    //update $table set usename='??' , password=??? , sex =??? where id = $where;

    $set = join(',' , parseSet($data));

    //var_dump($set);

    $sql = "update $table set $set where $where";
    //echo $sql;
    $result = mysqli_query($link , $sql);

    return $result;


}
//處理修改的時候的set問題
function parseSet($data)
{
    foreach ($data as $key => $value) {
        $value = parseValue($value);

        if (is_scalar($value)) {
            $set[] = $key . '=' . $value;
        }
    }

    return $set;
}



function del($link , $table , $where)
{
    //delte from $table where $wehre;

    $sql = "delete from $table where $where ";

    $result = mysqli_query($link , $sql);

    if ($result && mysqli_affected_rows($link)) {
        //return mysqli_insert_id($link);
        return mysqli_affected_rows($link);
    } else {
        return false;
    }
}


function select($link , $table , $where , $fields = '*')
{
    $sql = "select $fields from $table where $where";

    $result = mysqli_query($link , $sql);

    if ($result && mysqli_affected_rows($link)) {

        while ($rows = mysqli_fetch_assoc($result)) {
            $data[] = $rows;
        }
        return $data;
    } else {
        return false;
    }

}

//$data = select($link , 'bbs_user' , 'id>40');

//var_dump($data);

function sum($link , $table , $fields = 'id')
{
    $sql = "select sum($fields) as sum from $table";

    $result = mysqli_query($link , $sql);

    $sum = mysqli_fetch_assoc($result);

    return $sum['sum'];
}


//echo sum($link , 'bbs_user');
function MyMax($link , $table , $fields = 'id')
{
    $sql = "select max($fields) as max from $table";

    $result = mysqli_query($link , $sql);

    $max = mysqli_fetch_assoc($result);

    return $max['max'];
}
//echo MyMax($link , 'bbs_user');

function MyCount($link , $table , $fields = 'id')
{
    $sql = "select count($fields) as count from $table";

    $result = mysqli_query($link , $sql);

    $count = mysqli_fetch_assoc($result);

    return $count['count'];
}

//echo MyCount($link , 'bbs_user');

function MyAvg($link , $table , $fields = 'id')
{
    $sql = "select avg($fields) as avg from $table";

    $result = mysqli_query($link , $sql);

    $avg = mysqli_fetch_assoc($result);

    return $avg['avg'];
}
//求最小值
function MyMin($link,$table,$fields = 'id'){
    $sql = "select min($fields) as min from $table";
    $result = mysqli_query($link,$sql);
    $min = mysqli_fetch_assoc($result);

    return $min['min'];
}

//封裝一個分組的方法

function group($link,$table,$fields = "id",$group = "province"){
    $sql = "select count($fields) as a from $table group by $group";
    var_dump($sql);
    $result = mysqli_query($link,$sql);
    if($result && mysqli_affected_rows($link)){
        while($arr = mysqli_fetch_assoc($result)){
                $arrsy[] = $arr['a'];
        }
        return $arrsy;
    }else{
        return false;
    }

}

4.我們這裡寫個公共類來存放,方便以後開發

    <?php
    session_start();
    //define('WEB_SITE' , str_replace('\\' , '/' , __DIR__));


    include 'config.php';
    include 'mysql_func.php';

    //
    $link = connect(DB_HOST , DB_USER , DB_PWD , DB_CHARSET , DB_NAME);