2014-12-02 34 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

相关问题