mysqlデータベース操作関数パッケージ

2383 ワード

現在のPHP操作データベースの多くはmysqliで実現されている.またmysqli操作データベースを実現するには、電子商取引のバックグラウンド管理でも非常に使いやすい.使用頻度が高い以上、関数ライブラリのパッケージを行うしかない.ここではクラスの方法でパッケージを行うのではなく、構造向けの方法で簡単にまとめた.
(1)データベースへの接続:
function connect(){

    @$link = mysqli_connect(DB_HOST,DB_USER,DB_PWD);//     
    mysqli_set_charset($link,DB_CHARSET);//         
    mysqli_select_db($link,DB_DBNAME) or die('       ');//     

    if(mysqli_connect_errno())
    {
        die('        : '.mysqli_connect_errno());
    }

    return $link;
}

(2)データ挿入
function insert($link,$table,$array){
    $keys = join(',',array_keys($array));
    $values = "'".join(',',array_values($array))."'";
    $sql = 'insert into {$table}({$keys}) values({$values})';

    mysqli_query($link,$sql);

    return mysqli_insert_id($link);
}

(3)データの修正
function update($link,$table,$array,$where = null) {
     $setstr = ''; 
     foreach ($array as $key => $value) 
     {
        $setstr .= (' '.$key.'='.$value.' '); 
        if(!$setstr){ 
             $sep = '';
        }else{ 
             $sep = ','; 
        } 
        $setstr .= $sep.$key.'='."'"$value"'";
     } 

     $sql = "update {$table} set {$setstr}".($where ? 'where '.$where : ''); 
     mysqli_query($link,$sql); 

     return mysqli_affected_rows($link); 
}

(4)データの削除
function delete($link,$table,$where = null)
{
    $sql = "delete from {$table}".($where?'where '.$where : '');
    mysqli_query($link,$sql);

    return mysqli_affected_rows($link); 
}

(5)レコードの検索
function fetchOne($link,$sql,$result_type=MYSQLI_ASSOC)
{
    $result = mysqli_query($link,$sql);

    $row = mysqli_fetch_array($result,$result_type);

    return $row;
}

(6)複数レコードの検索
function fetchAll($link,$sql,$result_type=MYSQLI_ASSOC)
{
    $result = mysqli_query($link,$sql);

    while(@$row = mysqli_fetch_array($result,$result_type))
    {
        $row[] = $row;
    }

    return $row;
}

(7)結果セットに戻るローの数

function getResultNum($link,$sql)
{
    $result = mysqli_query($link,$sql);

    return mysqli_num_rows($result);
}