2011-06-16 81 views
1

我已經在MySQL的zend framwork的查詢有沒有寫這個MySQL查詢需要一些提示

$select = $this->select() 
       ->where ("phone = '" . $post ['phone'] . "'") 
       ->where(!("member_id != '" .$post['member_id'] . "'")); 

任何其他方式我是什麼要做的是更新的手機沒有成員的,看看手機數據庫中不存在任何其他方式做這個可以有人回答

回答

5

首先,您的代碼存在安全問題。始終使用安全引用:

->where("phone = ?",$post["phone"]) 

至於這個問題,你可以使用Zend_Validate_Db_NoRecordExists驗證表單上。下面是一些有用的鏈接:

使用這個驗證恰恰是檢查是否一個給定的值不會在數據庫中已經存在的想法,沒有任何額外的工作您的查詢。

+0

謝謝你的回答ima新手一定會試試 – 2011-06-16 09:52:23

+0

對不起,每個帖子有一個問題。 – mingos 2011-06-16 14:09:20

+0

只需按照說明進行操作。如果問題不符合質量標準,您應該得到有關錯誤的提示。也許它不夠明確。請記住詳細說明您的問題,儘可能詳細地提供。在這種情況下,您需要描述所需的效果,當前的代碼以及它的錯誤。它應該沒問題。 – mingos 2011-06-17 08:06:44

2

爲此,我建議你在窗體上使用驗證器!

實例形式:在將返回控制應該是真的還是假的查詢

 //phone 
    $this->addElement('text', 'phone', 
         array('label' => 'Phone', 'required' => true)); 
    $params = array(
     'table' => 'User', 
     'field' => 'phone', 
    ); 
    $this->phone->addValidator('Db_NoRecordExistPhone', false, array($params)); 

驗證寫。

+0

您確定代碼最後一行的驗證器名稱? ;) – mingos 2011-06-16 09:40:29

+1

Db_NoRecordExistPhone那裏。這是一個發明的名字。你將不得不按你想要的名字寫你和驗證器! – JellyBelly 2011-06-16 09:50:14

+1

爲什麼?無論如何,有一個標準的驗證器,爲什麼寫另一個完全相同的東西呢? – mingos 2011-06-16 09:59:26