简化PHP数据提交的方法

PHP数据提交的方法很多,普通的方法是通过HTML页上面的文本框名称来POST到后台PHP程序中进行数据库的增加、删除、更新操作。这里提供另外一种可以复用的方法与思路,下面以SQLITE数据库为基础做个代码示范:

//user.php

<?php

require_once("Sqlite.php");//加载数据库类
//if (isset($_GET["user"]) and isset($_GET["passwd"])) {
$db=new Sqlite();//新建数据库类
$db->getConn();//建立数据库连接

?>

<h4>用户管理</h4>
<form enctype="multipart/form-data" action="user.php" method="POST">
<fieldset name="Group1">
<legend>用户信息</legend>
工 号:<input type="text" name="arr[gh]" /><br />
姓 名:<input type="text" name="arr[xm]" /><br />
部 门:<input type="text" name="arr[ss]" /><br />

<input class="inputbut" type="submit" name="add" value="新增保存"/>

<?php
if (isset($_POST["add"]))  {
       $rs=$db->AddLine('user',$_POST[arr]);
    if ($rs>0) {echo "新增成功!";}
    }

?>

//sqlite.php //数据库操作类

<?php
// 基类
class Sqlite {
public $sth;
public $dbh;
/*
var $DB;function Conn()
{
}
*/
function getConn(){ //取得数据库连接

try{
//echo 'sqlite:'.dirname(__FILE__).'db';
$this->dbh = new PDO('sqlite:'.dirname(__FILE__).'/db', null, null);
    $this->dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
catch (PDOException $e)
{
echo 'Connection failed: ' . $e->getMessage();
$this->dbh = null;
}
}

function AddLine($bm,$arr){ //插入记录参数$bm(表名),$arr(字段数组)
    $zd='';
    $nr='';
    foreach($arr as $key=>$val){ //此处的$key 和$val 都是自定义的
        $zd=$zd."'$key',";
        $nr=$nr."'$val',";
    }
    $zd=substr($zd,0,strlen($zd)-1);
    $nr=substr($nr,0,strlen($nr)-1);
    $sql="insert into $bm ($zd) values ($nr)";
    //echo '$zd='.substr($zd,0,strlen($zd)-1).'<br>';
    //echo '$nr='.$nr.'<br>';
    $rs=$this->dbh->exec($sql);
    return $rs;
}

}
?>

用以上的AddLine来插入记录,不管是什么样的数据库表结构都可以应付不如,而不用重写insert的方法。原理就是应用PHP可以将HTML中arr[xxx]这样的name名识别成数组,然后利用PHP将这些数组里的键值与内容分解出来处理。

猜你喜欢

转载自blog.csdn.net/dingzz/article/details/7167896
今日推荐