小笙's Blog

封装自己的Mysqli操作类2012.12.04 20:31

Mysqli为php5引入的新的数据库操作对象,Mysqli包括php4中所有的mysql方法,并且Mysqli支持面向操作,并且mysqli的预处理操作可以防止SQL注入。

封装自己的mysqli操作类,可以大大简化与数据库操作时的代码书写。

点击下载封装的Mysqli操作类

此类封装了mysql的增加(INSERT())、修改(UPDATE())、删除(DELETE())、查询(SELECT())以及执行多条SQL语句的execs()方法,方法的命名以类SQL语句命名。

注:此类名为DataBase,数据库是以连接常量的形式进行连接的,使用前请先修改类中构造方法的连接常量。

使用范例:

include 'DataBase.class.php';
$db=new DataBase();

//将表单中提交的数据添加到comments(评论)表中
//此方法类似直接执行SQL:INSERT INTO `comments`(aid, name, time, content) VALUES(1, $_POST['name'], time(), $_POST['content'])
if(!empty($_POST)){
    $rows = $db -> INSERT_INTO('comments')
                -> VALUES(array(
                       'aid'       => 1,
                        'name'      => $_POST['name'],
                        'time'      => time(),
                        'content'   => $_POST['content'] 
                ))
                -> INSERT();
}

//按条件查询记录
//此方法类似执行SQL:SELECT cid, name, time, content FROM `comments` WHERE cid!=157 AND cid!=158 OR cid=154 ORDER BY cid GROUP BY NULL
$result=$db ->SELECT(array('cid', 'name', 'time', 'content'))
            ->FROM('comments')
            ->WHERE('cid!=157', array('AND'=>'cid!=158', 'OR'=>'cid=154'))
            ->ORDER_BY('cid')
            ->GROUP_BY('null')
            ->SELECT();
//默认函数返回值为一带数据库字段索引的而为数组,因此遍历此数组即可
echo '<table border="1">';
    echo '<tr><td>id</td><td>name</td><td>time</td><td>content</td><td>编辑</td></tr>';
    foreach($result as $row){
        echo '<tr>';
            foreach($row as $index=>$col){
                echo '<td>'.$col.'</td>';
            }
            echo '<td><a href="?i='.$row['cid'].'&a=delete">删除</a>|<a  href="edit.php?i='.$row['cid'].'&a=edit">修改</a></td>';
        echo '</tr>';
    }
echo '</table>';

//删除一条记录
//此方法类似执行SQL:DELETE FROM `comments` WHERE cid=$_GET['i']
if(isset($_GET['a'])&&$_GET['a']=='delete'){
    $rows=$db ->DELETE_FROM('comments')
              ->WHERE("cid=$_GET[i]")
              ->DELETE();
}

//更新一条记录
//此方法类似执行SQL:UPDATE `comments` SET name=$_POST['name'], content=$_POST['content'] WHERE cid=$_POST['i']
$db ->UPDATE('comments')
    ->SET(array(
        'name'      =>$_POST['name'],
        'content'   =>$_POST['content']
    ))
    ->WHERE('cid='.$_POST['i'])
    ->UPDATE();

//执行一组SQL语句
$arr=array(
    'UPDATE seccomments SET cid=cid+1 WHERE cid=144',
    'UPDATE seccomments SET cid=cid+1 WHERE cid=138'
);
if($db ->execs($arr)){
    echo 'SQL执行成功';
}                    

  • 正在加载用户留言,请稍后~
点击这里取消回复

  • 请选择邮箱类型
  • @qq.com
  • @163.com
  • @sina.com
  • @126.com
  • @vip.qq.com
  • @sina.com.cn

:love: :kiss: :twist: :top: :shake: :bye: :han: :sleep: :lula: :rou: :happy: