2015-05-09 70 views
-1

我想知道在類中創建函數是否有一種很好的方法,以便於插入/刪除/更新mysql查詢。在INSERT,DELETE和UPDATE類中創建動態函數

例如

比方說,我有一個包含12行的表,我想和兩個值插入查詢從另一個類中。插入函數的外觀如何?我希望這個函數能夠處理任何數量的值。

function addUser($email, $password) { 

    $values = array(
     "email" => $email, 
     "password" => $password 
    ); 

    $table = 'users'; 
    $query = $mysql->insert($values, $table); 
} 

function insert($values, $table) { 
    // what would this look like? (note: this function is within another class. 
} 

我希望最終的和預處理語句執行查詢,像:

if($stmt = $this->db->prepare($query)) { 
     $stmt->bind_param('ss', $email, $password); 
     $stmt->execute(); 

     if($stmt->fetch()) { 
      $stmt->close(); 
      return true; 
     } 
    } 
+0

不要這樣做。這是個好主意,但最好不要編寫自己的工具,而應該使用已經存在的,例如教義。 –

回答

0
class Mysql 
{ 
    public static function insert($values, $table) 
    { 
     if(empty($values) || empty($table)) 
     { 
      // Noting to do 
      return ""; 
     } 

     $list = array(); 

     foreach($values as $k => $v) 
      $list[] = "`". $k ."` = '". $v ."'"; 

     $list = implode(",", $list); 
     $query = "INSERT INTO `". $table ."` SET " . $list; 
     return $query; 
    } 
} 

$values = array 
(
    "email" => "my email", 
    "password" => "my password" 
); 

$table = 'users'; 
$query = Mysql::insert($values, $table); 

echo $query; 

沒有理由,因爲所有的數據是靜態的在這裏使用的構造函數。 但是如果你願意的話,就請從static插入功能 和初始化的MySQL這樣的:

$mysql = new Mysql(); 
$mysql->insert($values, $table); 
相關問題