I often use MySQL databases, so Program Only the database operation class of MySQL is written. I hope you can write all the other classes in your hand. You 'd better send me one.
Db_mysql.php inherits the DB. php interface and implements various database operations methods. If you are sure that your database platform will not change, you don't need a factory class. Just use this.
CopyCode The Code is as follows: <? PHP
/**
* @ Author Huang Jianwen
* @ Version V1.0
* @ Email hjwtp2005@qq.com
* @ Data 2008-12-16
* ===================================================== ======================================
* @ Example
* Include 'db _ mysql. php ';
* $ Db = new db_mysql ('localhost', 'root', 'admin', 'emtit ');
* $ Sqlstr = "select * from member where memberid = 1 ";
* Var_dump ($ db-> get_one ($ sqlstr ));
* ===================================================== ======================================
*/
Include 'db. php ';
Class db_mysql implements dB {
Private $ connid;
Public Function db_mysql ($ dbhost, $ username, $ passowrd, $ dbname = '', $ dbcharset = 'utf8 '){
$ This-> connid = mysql_connect ($ dbhost, $ username, $ passowrd );
If (! $ This-> connid ){
$ This-> halt ('can not connect to MySQL Server ');
}
If (emptyempty ($ dbcharset )){
$ Dbcharset = 'utf8 ';
}
// Enable database Character Set setting when MySQL version is 4.1 or later
If ($ this-> Version ()> '4. 1' & $ dbcharset)
{
Mysql_query ("set names '". $ dbcharset. "'", $ this-> connid );
}
// Set the SQL mode when MySQL version is 5.0 or later.
If ($ this-> Version ()> '5. 0 ')
{
Mysql_query ("set SQL _mode ='' ", $ this-> connid );
}
If (! Emptyempty ($ dbname )){
$ This-> select_db ($ dbname );
}
}
/**
* Select a database
*
* @ Param unknown_type $ dbname
*/
Public Function select_db ($ dbname ){
Mysql_select_db ($ dbname, $ this-> connid );
}< br>/**
* execute an SQL statement
* @ Param unknown_type $ sqlstr
*/
Public Function query ($ sqlstr) {
$ query = mysql_query ($ sqlstr, $ this-> connid);
If (! $ Query) {
$ this-> halt ('mysql query error', $ sqlstr);
}< br> return $ query;
}< br>/**
* obtain a query record
* @ return unknown
*/
Public Function get_one ($ sqlstr) {
$ query = $ this-> query ($ sqlstr);
$ rs = $ this-> fetch_array ($ query );
$ this-> free_result ($ query);
return $ RS;
}< br>/**
* obtain a row from the result set as an associated array
* @ Param resource database query result resource
* @ Param string define the return type
* @ return array
*/
Public Function fetch_array ($ query, $ result_type = mysql_assoc)
{< br> return mysql_fetch_array ($ query, $ result_type);
}
/**
* Obtain the number of rows affected by the previous MySQL operation.
* @ Return int
*/
Public Function affected_rows ()
{
Return mysql_affected_rows ($ this-> connid );
}
/**
* Number of rows in the result set
* @ Return int
*/
Public Function num_rows ($ query)
{
Return mysql_num_rows ($ query );
}
/**
* Number of fields in the returned result set
* @ Return int
*/
Public Function num_fields ($ query)
{
Return mysql_num_fields ($ query );
}
/**
* Release the result memory.
*
* @ Param unknown_type $ Query
* @ Return bool
*/
Public Function free_result ($ query)
{
Return mysql_free_result ($ query );
}
/**
* Obtain the ID generated by the previous insert operation.
* @ Return int
*/
Public Function insert_id ()
{
Return mysql_insert_id ($ this-> connid );
}
/**
* obtain MySQL Server Information
* @ return string
*/
Public Function version ()
{< br> return mysql_get_server_info ($ this-> connid );
}< br>/**
* close the MySQL connection
* @ return bool
*/
public function close ()
{< br> return mysql_close ($ this-> connid );
}< br>/**
* Return Error string
* @ return string
*/private function error () {
return @ mysql_error ($ this-> Connid );
}< br>/**
* Return Error Code
* @ return int
*/
private function errno () {
return intval (@ mysql_errno ($ this-> connid ));
}< br>/**
* output error message
* @ Param string $ SQL
*/
private function halt ($ message = '', $ SQL = '') {
exit (" MySQL query: $ SQL
MySQL error :". $ this-> error (). "
MySQL errno :". $ this-> errno (). "
mess Age: $ message ");
}< BR >?>
DB. php database operation interface, which defines database operation methods.
Copy codeThe Code is as follows: <? PHP
Interface dB {
Function select_db ($ dbname); // select a database
Function query ($ sqlstr); // execute an SQL statement
Function get_one ($ sqlstr); // execute an SQL statement to obtain only one record
Function fetch_array ($ query); // retrieves a row from the result set as an associated array
Function affected_rows (); // number of records affected by the return operation
Function num_rows ($ query); // obtain the number of rows in the result set.
Function num_fields ($ query); // number of fields in the returned result set
Function free_result ($ query); // release resources
Function insert_id (); // returns the ID of the last inserted record;
Function version (); // database version
Function close (); // close the database connection
}
?>
Db_factory.php database factory class, which must be used more conveniently to implement the database platform Copy code The Code is as follows: <? PHP
/**
* @ Author Huang Jianwen
* @ Version V1.0
* @ Email hjwtp2005@qq.com
* @ Example
* $ Db = db_factcory: Create ('mysql', 'localhost', 'root', 'admin', 'emtit ');
* $ Sqlstr = "select * from member where memberid = 1 ";
* $ Db-> get_one ($ sqlstr );
*/
Include 'db _ mysql. php ';
Class db_factory {
Function db_factory (){
}
Static function create ($ type, $ dbhost, $ username, $ password, $ dbname = '', $ dbcharset = ''){
Switch ($ type ){
Case 'mysql ':
Return new db_mysql ($ dbhost, $ username, $ password, $ dbname, $ dbcharset );
Case 'sqlserver ':
Return new db_sqlserver ($ dbhost, $ username, $ password, $ dbname, $ dbcharset );
Case 'access ':
Return new db_access ($ dbhost, $ username, $ password, $ dbname, $ dbcharset );
Case 'oracle ':
Return new db_oracle ($ dbhost, $ username, $ password, $ dbname, $ dbcharset );
}
Return false;
}
Function _ destruct (){
}
}
?>