2014-12-02 1 views
0

모든 것이 모두 잘되어 가고 있습니다. 나는 도전에 직면하고 읽고 많이 찾은 후에 나는 신들에게 전화하기 위해 부탁했다.두 값 모두 db (php + mysql)에 존재하는지 확인하십시오

나는이 이름 내 DB에 "tclinte"라는 이름의 테이블이 있습니다

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

CliNIF (기본 키) 및 CliNome을 (UNIC/반복 어차피, 나머지는 문제 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가 존재하는지 검사하고, CliName과 똑같이 시도하지만 "mysql_fetch_array()는 주어진 리소스 부울을 기다린다. 이름이 존재하는지 확인 - - 고급) N.º2 작동 exists- NIF는 경우가 -------

N.º1 확인 작업을해야하는 경우에도 "

$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 될 것이고 여기에있는 문제는 문제가 될 것입니다. –

+0

... 분명히 말하지만 이것은 아직 끝나지 않았습니다. 나는 SQL 인젝션에 대해 알고 있습니다. 그리고 보호 될 것입니다 ... 나는 그 일로 처음부터 걱정됩니다. 왜 작동하지 않는 것을 보호해야합니까 ?? 함장님 명백한 ... – CJay

+0

선장 명백한 것은 또한 당신이 처음에 뭔가를 올바르게 만들지 않는다면 나중에 그것을 개선 할 수 없을 것입니다. 이동 중에도 안전한 쿼리를 작성할 수 있습니다. –

답변

0

대신) 오류를 제공 이

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

시도해보십시오. 희망이 당신의 오류를 해결할 것입니다

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

그게 그랬어요. 해결 됐어. 당신의 도움을 주셔서 감사합니다. – CJay

관련 문제