Hàng ngày với từng dòng code cơ bản như dưới đây có làm bạn nhàm chát, mệt nhọc, rồi lại nghĩ rằng mình sẽ mãi mãi replay lại những cái này sao. Thảm hại thật :)
- Select
- Insert
- Delete
- Update
- Connect
- Disconnect
Nhưng đừng nản lòng, các phương thức trên chẳng làm khó được bạn mà mang lại sự nhám chán, các phương thức dưới đây sẽ tạo cho bạn một tư tưởng mới. Cái cũ không bao giờ lỗi thời. Một tư tưởng khác biệt hay đó là sự sáng tạo làm cho bạn cảm thấy hứng thú.
- class Database
- {
- public function connect() { }
- public function disconnect() { }
- public function select() { }
- public function insert() { }
- public function delete() { }
- public function update() { }
- }
Tôi sẽ không đề cập đến kiến thức cơ bản ở đây, mà là đề cao tính tư tưởng và suy nghĩ ( học được qua quá trình đi thử việc ). Những đoạn code trên sau khi đọc điều đầu tiên tôi nghĩ là nó để làm gì chứ không phải là xác định public, function là gì. Những đoạn code này tôi cũng copy nhặt được :).
Nhưng vẫn phải giải thích một tẹo
function connect()
/*phương thức kết nối csdl kết nối ra sao đọc php tutorial nha*/
- private db_host = ‘’;
- private db_user = ‘’;
- private db_pass = ‘’;
- private db_name = ‘’;
- public function connect()
- {
- if(!$this->con)
- {
- $myconn = @mysql_connect($this->db_host,$this->db_user,$this->db_pass);
- if($myconn)
- {
- $seldb = @mysql_select_db($this->db_name,$myconn);
- if($seldb)
- {
- $this->con = true;
- return true;
- } else
- {
- return false;
- }
- } else
- {
- return false;
- }
- } else
- {
- return true;
- }
- }
public function disconnect()
/*phương thức ngắt kết nối csdl
* ngắt kết nối ra sao thì lại đọc php tutorial nha
*/
- public function disconnect()
- {
- if($this->con)
- {
- if(@mysql_close())
- {
- $this->con = false;
- return true;
- }
- else
- {
- return false;
- }
- }
- }
public function select()
/*phương thức hiển thị kết quả
*
*/
- private $result = array();
- private function tableExists($table)
- {
- $tablesInDb = @mysql_query('SHOW TABLES FROM '.$this->db_name.' LIKE "'.$table.'"');
- if($tablesInDb)
- {
- if(mysql_num_rows($tablesInDb)==1)
- {
- return true;
- }
- else
- {
- return false;
- }
- }
- }
/* Hiện thị kết quả từ csdl nhiều bài viết cơ bản sẽ dễ đọc
* đến đây bắt đầu ngán rồi hả * trong php và mysql hay bất kỳ ngôn ngữ nào khác
* sự ngán ngẩm, chán là chuyện thường
* còn nữa, tôi sẽ giải thích tiếp
*/
- public function select($table, $rows = '*', $where = null, $order = null)
- {
- $q = 'SELECT '.$rows.' FROM '.$table;
- if($where != null)
- $q .= ' WHERE '.$where;
- if($order != null)
- $q .= ' ORDER BY '.$order;
- if($this->tableExists($table))
- {
- $query = @mysql_query($q);
- if($query)
- {
- $this->numResults = mysql_num_rows($query);
- for($i = 0; $i < $this->numResults; $i++)
- {
- $r = mysql_fetch_array($query);
- $key = array_keys($r);
- for($x = 0; $x < count($key); $x++)
- {
- // Sanitizes keys so only alphavalues are allowed
- if(!is_int($key[$x]))
- {
- if(mysql_num_rows($query) > 1)
- $this->result[$i][$key[$x]] = $r[$key[$x]];
- else if(mysql_num_rows($query) < 1)
- $this->result = null;
- else
- $this->result[$key[$x]] = $r[$key[$x]];
- }
- }
- }
- return true;
- }
- else
- {
- return false;
- }
- }
- else
- return false;
- }
public function insert()
/*
* có hiển thị thì sẽ có thêm nếm vào csdl
* thêm như thế nào thì đây
*
*/
- public function insert($table,$values,$rows = null)
- {
- if($this->tableExists($table))
- {
- $insert = 'INSERT INTO '.$table;
- if($rows != null)
- {
- $insert .= ' ('.$rows.')';
- }
- for($i = 0; $i < count($values); $i++)
- {
- if(is_string($values[$i]))
- $values[$i] = '"'.$values[$i].'"';
- }
- $values = implode(',',$values);
- $insert .= ' VALUES ('.$values.')';
- $ins = @mysql_query($insert);
- if($ins)
- {
- return true;
- }
- else
- {
- return false;
- }
- }
- }
/*
* thêm nhiều quá thì quá tải
* bây giờ thì xóa bớt đi
*
*/public function delete()
- public function delete($table,$where = null)
- {
- if($this->tableExists($table))
- {
- if($where == null)
- {
- $delete = 'DELETE '.$table;
- }
- else
- {
- $delete = 'DELETE FROM '.$table.' WHERE '.$where;
- }
- $del = @mysql_query($delete);
- if($del)
- {
- return true;
- }
- else
- {
- return false;
- }
- }
- else
- {
- return false;
- }
- }
/*
*
*
*
*/- for($i = 0; $i < count($where); $i++)
- {
- if($i%2 != 0)
- {
- if(is_string($where[$i]))
- {
- if(($i+1) != null)
- $where[$i] = '"'.$where[$i].'" AND ';
- else
- $where[$i] = '"'.$where[$i].'"';
- }
- else
- {
- if(($i+1) != null)
- $where[$i] = $where[$i]. ' AND ';
- else
- $where[$i] = $where[$i];
- }
- }
- }
/*
*
*
*
*/- $keys = array_keys($rows);
- for($i = 0; $i < count($rows); $i++)
- {
- if(is_string($rows[$keys[$i]]))
- {
- $update .= $keys[$i].'="'.$rows[$keys[$i]].'"';
- }
- else
- {
- $update .= $keys[$i].'='.$rows[$keys[$i]];
- }
- // Parse to add commas
- if($i != count($rows)-1)
- {
- $update .= ',';
- }
- }
/*
*
* thay đổi thông tin
*
*/- public function update($table,$rows,$where)
- {
- if($this->tableExists($table))
- {
- // Parse the where values
- // even values (including 0) contain the where rows
- // odd values contain the clauses for the row
- for($i = 0; $i < count($where); $i++)
- {
- if($i%2 != 0)
- {
- if(is_string($where[$i]))
- {
- if(($i+1) != null)
- $where[$i] = '"'.$where[$i].'" AND ';
- else
- $where[$i] = '"'.$where[$i].'"';
- }
- }
- }
- $where = implode('=',$where);
- $update = 'UPDATE '.$table.' SET ';
- $keys = array_keys($rows);
- for($i = 0; $i < count($rows); $i++)
- {
- if(is_string($rows[$keys[$i]]))
- {
- $update .= $keys[$i].'="'.$rows[$keys[$i]].'"';
- }
- else
- {
- $update .= $keys[$i].'='.$rows[$keys[$i]];
- }
- // Parse to add commas
- if($i != count($rows)-1)
- {
- $update .= ',';
- }
- }
- $update .= ' WHERE '.$where;
- $query = @mysql_query($update);
- if($query)
- {
- return true;
- }
- else
- {
- return false;
- }
- }
- else
- {
- return false;
- }
- }
Cài đặt csdl
- <?php;
- include('crud.php');
- $db = new Database();
- $db->connect();
- $db->select('mysqlcrud');
- $res = $db->getResult();
- print_r($res);
- ?>
/*
* test thử xem sao
*
*
*/- <?php;
- $db->update('mysqlcrud',array('name'=>'Changed!'),array('id',1));
- $db->update('mysqlcrud',array('name'=>'Changed2!'),array('id',2));
- $res = $db->getResult();
- print_r($res);
- ?>
/*
* test thử xem sao
*
*
*/- ;<?php;
- $db->insert('mysqlcrud',array(3,"Name 4","this@wasinsert.ed"));
- $res = $db->getResult();
- print_r($res);
- ?>
===> Quá nhiều phương thức, biến, chữ loằng ngoằng đọc thật khó hiểu. Nguyên gốc của nó là tiếng anh
bạn có thể download tại đây .
Nhưng tư tưởng mà mình muốn nhắc đến là OOP .
Hãy xác định đối tượng + phương thức + thuộc tính, những cái thâm căn không thay đổi. Nhưng làm sao để xác định được đâu là đối tượng, phương thức, thuộc tính. Loạn mất loạn mất, thực ra mình nghĩ rằng cần thực hiện công việc gì thì viết lấy cái phương thức, cần lấy dữ liệu gì thì tạo cho nó vài thuộc tính. Quen dần thì gọi là thực thi theo chức năng, giờ thấy OOP khá hay. Bạn để ý
- class Database
- {
- public function connect() { }
- public function disconnect() { }
- public function select() { }
- public function insert() { }
- public function delete() { }
- public function update() { }
- }
No comments:
Post a Comment