2014-12-02 40 views
0

希望一切都很順利與大家。 我正面臨挑戰,經過閱讀和搜索,我決定致電衆神。檢查兩個值是否存在於db(php + mysql)

我有一個名爲 「tclinte」 在我的分貝與這些名稱表:

|CliNIF | CliNome | CliNumProc | CliNIC | CliOrigem | CliGestor | CliContactoGC|  

CliNIF(主鍵)和CliNome(被新聞中心/不能重複,剩下的事情doenst)

所以,我要檢查,如果插入時數據,此表的新CliNIF或新CliNome或兩者都已經在表中,是這樣的:

if (CliNIF and CliNome exists) { update all fields except them}  
else if (CliNIF and CliNome don't exist) { create all fields}  
else if (CliNIF exists and CliNome not exists) { update fields except CliNIF}  
else { update fields except CliNome}  

----------------我有這個,但它只檢查CliNIF是否存在,試着應用到EXI相同的CliName,但我收到一個錯誤「mysql_fetch_array()期待資源布爾給定「即使它應該工作-------

N.º1檢查,如果NIF exists-正常工作) N.º2 - 檢查是否存在名稱 - 給出錯誤)

$queryTCliente1 = "SELECT * FROM TCliente WHERE CliNIF =".$_POST['CliNIF']; 
       $searchTCliente1 = mysql_query($queryTCliente1); 
       $resultTCliente1 = mysql_fetch_array($searchTCliente1); 
       if (empty($resultTCliente1)){ 
        //PREENCHIMENTO TABELA CLIENTE 
        $insertTable= mysql_query("insert into TCliente (CliNIF, CliNome, CliNumProc, CliNIC, CliOrigem, CliGestor, CliContactoGC) 
        values ('".$_POST['CliNIF']."', '".$_POST['CliNome']."','".$_POST['CliNumProc']."', '".$_POST['CliNIC']."', 
        '".$_POST['CliOrigem']."', '".$_POST['CliGestor']."', '".$_POST['CliContactoGC']."');"); 
       }  

$queryTCliente2 = "SELECT * FROM TCliente WHERE CliNome =".$_POST['CliNome']; 
       $searchTCliente2 = mysql_query($queryTCliente2); 
       $resultTCliente2 = mysql_fetch_array($searchTCliente2); 
       if (empty($resultTCliente2)){ 
        //PREENCHIMENTO TABELA CLIENTE 
        $insertTable= mysql_query("insert into TCliente (CliNIF, CliNome, CliNumProc, CliNIC, CliOrigem, CliGestor, CliContactoGC) 
        values ('".$_POST['CliNIF']."', '".$_POST['CliNome']."','".$_POST['CliNumProc']."', '".$_POST['CliNIC']."', 
        '".$_POST['CliOrigem']."', '".$_POST['CliGestor']."', '".$_POST['CliContactoGC']."');"); 
       }  
+1

可愛的[SQL注入攻擊](http://bobby-tables.com)vulenrabilities。坐下來放鬆一下 - 你的服務器很快就會pwn3d,你的問題將變得沒有實際意義。 – 2014-12-02 16:56:02

+0

......這是顯而易見的說,但這還沒有完成,我知道sql注入和當然它將被保護......我擔心它首先工作。爲什麼保護不起作用的東西?隊長明顯... – CJay 2014-12-02 17:01:30

+0

隊長明顯也會說,如果你沒有在第一時間建立正確的東西,你可能永遠不會在以後改進它。無需花時間從起點開始編寫安全查詢。 – 2014-12-02 17:06:05

回答

0

代替這

"SELECT * FROM TCliente WHERE CliNome =".$_POST['CliNome']; 

請試試這個。希望這會解決你的錯誤

"SELECT * FROM TCliente WHERE CliNome ='".$_POST['CliNome']."'"; 
+0

就是這樣。解決了。謝謝你的幫助。 – CJay 2014-12-02 17:31:26

相關問題