我的 DataBase类

  1. /**
  2. * 数据库配置类
  3. */
  4. class DBConfig
  5. {
  6. public static $HOST = 'localhost';
  7. public static $USERNAME = 'root';
  8. public static $PASSWORD = 'root';
  9. public static $DATABASE = 'shopping';
  10. public static $CHARSET = 'utf8';
  11. }
  12. ?>
  1. /**
  2. * 数据库操作类
  3. */
  4. class DataBase{
  5. private $connection;
  6. /**
  7. * 构造方法
  8. * @access public
  9. */
  10. public function __construct(){
  11. $CONFIG = require(dirname(__FILE__).'/DBConfig.class.php');
  12. $this>connection = mysql_connect(DBConfig::$HOST,DBConfig::$USERNAME,DBConfig::$PASSWORD);
  13. mysql_select_db(DBConfig::$DATABASE);
  14. mysql_query("SET NAMES '".DBConfig::$CHARSET."'");
  15. }
  16. /**
  17. * 析构方法
  18. * @access public
  19. */
  20. public function __destruct(){
  21. mysql_close($this>connection);
  22. }
  23. /**
  24. * 执行SQL查询语句
  25. * @access private
  26. * @param string $p_sql 查询命令
  27. * @return array 记录集,无记录返回空数组
  28. */
  29. private function query($p_sql){
  30. $dataTemp = mysql_query($p_sql,$this>connection);
  31. $data = array();
  32. $dataItem = 0;
  33. while ($rows = mysql_fetch_assoc($dataTemp)) {
  34. $data[$dataItem] = $rows;
  35. $dataItem++;
  36. }
  37. return $data;
  38. }
  39. /**
  40. * 执行SQL语句
  41. * @access public
  42. * @param string $p_sql 需要执行的SQL,可以为INSERT,SELECT,UPDATE或DELETE
  43. * @return 如果SQL是SELECT,返回记录集,如果SQL是INSERT,返回新记录ID,如果SQL是UPDATE或DELETE,返回所影响的行数
  44. */
  45. public function execute($p_sql){
  46. $controlr = strtoupper(substr($p_sql,0,6));
  47. switch ($controlr) {
  48. case 'INSERT':
  49. mysql_query($p_sql,$this>connection);
  50. $result = mysql_insert_id($this>connection);
  51. break;
  52. case 'SELECT':
  53. $result = $this>query($p_sql,$this>connection);
  54. break;
  55. default:
  56. mysql_query($p_sql,$this>connection);
  57. $result = mysql_affected_rows($this>connection);
  58. break;
  59. }
  60. return $result;
  61. }
  62. }
  63. ?>

调用很简单:

  1. $sql = '.....'; // 可以是任何增删改查的语句
  2. $db = new DataBase();
  3. $rs = $db>execute($sql);
  4. $db = null;