2011/02/09

PHP 連MySQL 的方法

以下資料是以之前找到台大的學生寫的網頁為基礎,做了一些修改與添加而成的:
使用的時候,只要php require/include 進來,就可以開始連線與查詢了。

之所以沒有把連線的動作也放在dbRobot 裡,是為了生命週期的完整概念所致。
看網路上大多數的人都不會這樣做,而是在使用的PHP 裡再去包含dbConfig, dbClass
然後再去new...
我想這麼多人這樣做,一定有某個原因吧 ~ 只是我覺得這樣做比較簡潔,目前也不知道不好的原因,所以就先這樣做囉
另外,學生原本沒有做close 這個方法,原因不明
所以我補上去了

版面不想調了…好累 =.=

hinter/dbConfig.php
PHP 的標題
$DB['host'] = "localhost";
$DB['username'] = "archer";
$DB['password'] = "12345";
$DB['dbname'] = "123";
PHP 的屁股

hinter/dbRobot.php
PHP 的標題
require_once("dbConfig.php");

class DB
{
var $_dbConn = 0;
var $_queryResource = 0;
var $_host = "";
var $_user = "";
var $_pwd = "";
var $_dbname = "";

function DB()
{
//do nothing
}
function connect_db()
{
echo $this->_host;
echo $this->_user;
echo $this->_pwd;
echo $this->_dbname;
$dbConn = mysql_connect($this->_host, $this->_user, $this->_pwd);
if (! $dbConn)
{
die ("MySQL Connect Error");
}
mysql_query("SET NAMES UTF-8");
if (! mysql_select_db($this->_dbname, $dbConn))
{
die ("MySQL Select DB Error");
}
$this->_dbConn = $dbConn;
return true;
}
function query($sql)
{
if (! $queryResource = mysql_query($sql, $this->_dbConn))
{
die ("MySQL Query Error");
}
$this->_queryResource = $queryResource;
return $queryResource;
}
// Get array return by MySQL
function fetch_array()
{
return mysql_fetch_array($this->_queryResource, MYSQL_ASSOC);
}
function get_num_rows()
{
return mysql_num_rows($this->_queryResource);
}

// Get the cuurent id
function get_insert_id()
{
return mysql_insert_id($this->_dbConn);
}
// Close conn
function close_conn()
{
mysql_close($this->_dbConn);
return true;
}
}

$robot = new DB();
$robot->_host = $DB['host'];
$robot->_user = $DB['username'];
$robot->_pwd = $DB['password'];
$robot->_dbname = $DB['dbname'];

PHP 的屁股

PHP網頁~~
PHP 的標題
include_once("hinter/dbRobot.php");
$robot->connect_db();

後面就開始用啦~~

沒有留言:

ECSA 考試之後

今天通過了ECSA 考試,順利拿到證書。 但是70% 及格的考試,我是70.67 過關。 特定幾個領域的問題全部都不會,沒概念也答不出來。 還有一題,從題目到所有選項、都有看不懂的單字,到最後只能猜。因為從題目到四個選項,我都不知道在講什麼東西。 所以過了又如何,離開...