1. 程式人生 > >簡化PHP資料提交的方法

簡化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將這些數組裡的鍵值與內容分解出來處理。