2009年3月13日 星期五

PHP與資料庫溝通的2種寫法

此篇將介紹2種PHP與資料庫溝通的寫法
2種寫法都可以,但如果建置較大型專案,
建議使用第2種寫法~~~~

EX.1-1 一般寫法
先建立一個空白的conn.php檔案,程式碼如下

$hostname_Mwebdata = "XXX.XXX.XXX.XXX";
$database_Mwebdata = "test";
$username_Mwebdata = "root";
$password_Mwebdata = "test";
$Mwebdata = mysql_connect($hostname_Mwebdata, $username_Mwebdata, $password_Mwebdata) or trigger_error(mysql_error(),E_USER_ERROR);
?>

之後可在任何要存取資料庫的PHP引用



存取方式如下

mysql_select_db($database_Mwebdata, $Mwebdata);
$query_MWDboard = "SELECT * FROM member WHERE sw =1"; //下SQL條件
$MWDboard = mysql_query($query_MWDboard, $Mwebdata) or die(mysql_error());
$row_MWDboard = mysql_fetch_assoc($MWDboard);
$totalRows_MWDboard = mysql_num_rows($MWDboard); //搜尋筆數
//假設有資料就可以echo出來看看了
if($totalRows_MWDboard>0){
echo $row_MWDboard["name"];
}
?>






EX.1-2 物件導向&Funtion寫法
先建立一個空白的conn.php檔案,程式碼如下

//先建立一些錯誤排除
class CONN_MYSQL
{
var $Host;
var $User;
var $Pass;
var $DBName;

function Connect()
{
if(!@mysql_connect($this->Host,$this->User,$this->Pass))
{
echo("\n

ERROR : FAIL TO CONNECT

\n");
echo("\n

很抱歉,目前系統忙碌中,請在 5 ~ 10 秒後按 F5 重新整理網頁!

\n");
exit();
}
$this->Select($this->DBName);
}

function Select($DBName)
{
if(!@mysql_select_db($DBName))
{
echo("\n

ERROR : FAIL TO SELECT

\n");
exit();
}
}

function Execute($SqlStr)
{
$TS = @mysql_query($SqlStr);
if(!$TS)
{
echo("\n

ERROR : FAIL TO EXECUTE

\n");
exit();
}
return $TS;
}

function Execute2($SqlStr)
{
$TS = @mysql_query($SqlStr);
return $TS;
}

function Fetch($TS)
{
$RS = @mysql_fetch_array($TS);
if(!isset($RS))
{
echo("\n

ERROR : FAIL TO FETCH

\n");
exit();
}
return $RS;
}

function RowsNum($TS)
{
$RSNum = @mysql_num_rows($TS);
if(!isset($RSNum))
{
echo("\n

ERROR : FAIL TO COUNT

\n");
exit();
}
return $RSNum;
}

function GoTo($TS,$SeekNum)
{
@mysql_data_seek($TS,$SeekNum);
}
}

//再建立連線Function
class CONN_PHP extends CONN_MYSQL
{
function CONN_PHP()
{
$this->Host = "xxx.xxx.xxx.xxx";
$this->User = "root";
$this->Pass = "test";
$this->DBName = "test";
$this->Connect();
}
};
?>

之後可在任何要存取資料庫的PHP引用




存取方式如下

$CONN = new CONN_PHP();
$CONN->Select("test"); //選擇資料庫
$SQL = " SELECT * FROM member WHERE sw = 1"; //下SQL條件
$TS = $CONN->Execute($SQL);
$Record = $CONN->RowsNum($TS); //搜尋筆數

//假設有資料就可以echo出來看看了
if ($Record>0){
echo $RS["name"];
}
?>
Fetch($TS)) { //利用迴圈列出每一筆資料 ?>





另外一些MYSQL相關函數可以參考
http://km.tceb.edu.tw/~wsx/php/ch9-4.htm

沒有留言:

##EasyReadMore##