2012-02-23 2 views
0

私は次のクラスが正しいかどうか疑問に思っています:このクラスは正しいですか?あなたが助けてくれることを願っています:)

このクラスはもちろんデータを収集した後にmysql接続を作成する必要があります。あなたはそれが接続するようにfunction __construct()を使うべきではなくconnect()特定を行うので、私はそれは大丈夫だと思うその後、動作する場合は「挿入」、「更新」、「削除」...など

class MySQL { 

     protected $hostname; 
     protected $username; 
     protected $password; 
     protected $database; 
     protected $t_prefix; 
     protected $_connect;    
     protected $SQLquery; 

    public function mysql() { 

      $this->hostname = INNOPB_MYSQl_HOSTNAME; 
      $this->username = INNOPB_MYSQl_USERNAME; 
      $this->password = INNOPB_MYSQl_PASSWORD; 
      $this->database = INNOPB_MYSQl_DATABASE; 
      $this->t_prefix = INNOPB_MYSQL_T_PREFIX; 

      return $this; 

     } 

     public function connect() { 

     $this->_connect = mysql_connect( 
     $this->hostname, 
     $this->username, 
     $this->password 
     ) or die (mysql_error()); 

     mysql_select_db($this->database , $this->_connect) or die (mysql_error()); 

    } 

    public function select ($WHAT, $FROM, $WHERE = '', $ORDERBY = '', $ORDER = '', $LIMIT = '') { 

$FROM  = $this->t_prefix . $FROM; 
$WHERE  = (!$WHERE) ? '': " WHERE $WHERE"; 
$ORDERBY = (!$ORDERBY) ? '': " ORDER BY $ORDERBY"; 
$ORDER  = (!$ORDER) ? '': " $ORDER"; 
$LIMIT  = (!$LIMIT) ? '' : " LIMIT $LIMIT"; 
$FROM  = str_replace('"' , "'", $FROM); 
$WHERE  = str_replace('"' , "'", $WHERE); 
$ORDERBY = str_replace('"' , "'", $ORDERBY); 
$ORDER  = str_replace('"' , "'", $ORDER); 
$LIMIT  = str_replace('"' , "'", $LIMIT); 

$this->SQLquery = "SELECT $WHAT FROM $FROM$WHERE$ORDERBY$ORDER$LIMIT"; 
$this->SQLquery = mysql_query($this->SQLquery); 

return $this; 

} 

public function getQuery() { return $this->SQLquery; } 

public function getRowsNum() { 

return mysql_num_rows($this->SQLquery); 

} 

public function delete($FROM, $WHERE, $deleteAll = false) { 

if (!$FROM || !$WHERE) : 

else : 

$FROM  = $this->t_prefix . $FROM; 
$WHERE  = (!$WHERE) ? '': " WHERE $WHERE"; 
$FROM  = str_replace('"' , "'", $FROM); 
$WHERE  = str_replace('"' , "'", $WHERE); 

($deleteAll) ? $this->SQLquery = "DELETE FROM $FROM" : $this->SQLquery = "DELETE FROM $FROM$WHERE"; 
$this->SQLquery = mysql_query($this->SQLquery); 
return $this->SQLquery; 

     endif; 

    } 


} 
+6

あなたのために機能しますか?その後、それは十分です。私はそれを使うだろうか? ORM(教義)を見ることをお勧めします。 –

+0

なぜあなた自身にこれをやっていますか?なぜそこにあるORMを使用しないのですか?あなたは長期的にこのコードで多くの問題に遭遇します。 – DarthVader

答えて

2

DBを自動的に使用し、クラスの使用が終了したらfunction __destruct()を使用して接続を終了します。

+0

はい、そうですよ!私は__construct()と__destruct()を使っていたはずです。 あなたの答えをありがとう!がんばろう :) – Innogen

関連する問題