我的 DataBase類
解決方法
/**
* 數據庫配置類
*/
class DBConfig
{
public static $HOST = 'localhost';
public static $USERNAME = 'root';
public static $PASSWORD = 'root';
public static $DATABASE = 'shopping';
public static $CHARSET = 'utf8';
}
?>
復制代碼
/**
* 數據庫操作類
*/
class DataBase{
private $connection;
/**
* 構造方法
* @access public
*/
public function __construct(){
$CONFIG = require(dirname(__FILE__).'/DBConfig.class.php');
$this>connection = mysql_connect(DBConfig::$HOST,DBConfig::$USERNAME,DBConfig::$PASSWORD);
mysql_select_db(DBConfig::$DATABASE);
mysql_query("SET NAMES '".DBConfig::$CHARSET."'");
}
/**
* 析構方法
* @access public
*/
public function __destruct(){
mysql_close($this>connection);
}
/**
* 執行SQL查詢語句
* @access private
* @param string $p_sql 查詢命令
* @return array 記錄集,無記錄返回空數組
*/
private function query($p_sql){
$dataTemp = mysql_query($p_sql,$this>connection);
$data = array();
$dataItem = 0;
while ($rows = mysql_fetch_assoc($dataTemp)) {
$data[$dataItem] = $rows;
$dataItem++;
}
return $data;
}
/**
* 執行SQL語句
* @access public
* @param string $p_sql 需要執行的SQL,可以為INSERT,SELECT,UPDATE或DELETE
* @return 如果SQL是SELECT,返回記錄集,如果SQL是INSERT,返回新記錄ID,如果SQL是UPDATE或DELETE,返回所影響的行數
*/
public function execute($p_sql){
$controlr = strtoupper(substr($p_sql,0,6));
switch ($controlr) {
case 'INSERT':
mysql_query($p_sql,$this>connection);
$result = mysql_insert_id($this>connection);
break;
case 'SELECT':
$result = $this>query($p_sql,$this>connection);
break;
default:
mysql_query($p_sql,$this>connection);
$result = mysql_affected_rows($this>connection);
break;
}
return $result;
}
}
?>
復制代碼調用很簡單:
$sql = '.....'; // 可以是任何增刪改查的語句
$db = new DataBase();
$rs = $db>execute($sql);
$db = null;
請大家多多指教!
[ ]
D8888D回貼內容
看看呢 ~~ [img]http://www.phpchina.com/bbs/images/smilies/default/shy.gif[/img][img]http://www.phpchina.com/bbs/images/smilies/default/shy.gif[/img]