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 '
echo '
idnametimecontent编辑';foreach($result as $row){
echo '
';foreach($row as $index=>$col){
echo '
'.$col.'';}
echo '
删除| 修改';echo '
';}
echo '
';//删除一条记录
//此方法类似执行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执行成功';
}