封装自己的Mysqli操作类2012.12.04 20:31
Mysqli为php5引入的新的数据库操作对象,Mysqli包括php4中所有的mysql方法,并且Mysqli支持面向操作,并且mysqli的预处理操作可以防止SQL注入。
封装自己的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执行成功'; }
相关文章
分页类-限定显示页数 下一篇 >>
- 正在加载用户留言,请稍后~