2014-10-17 62 views
0

我基本上想制作一个HTML表单,其中用户插入两个不同的输入。 然后将这些输入与存储在MySQL表中的数据进行比较。如果输入变量的BOTH与来自表的IN A SAME ROW中的两个变量相匹配,则返回一条消息,否则返回另一个消息。 我该怎么做?这是迄今为止我的代码:如何比较两个输入变量与MySQL存储值(PHP)?

if (mysqli_connect_errno()) { echo "Failed to connect to MySQL: " . mysqli_connect_error(); }

//逃脱变量安全

$numero_cedula = mysqli_real_escape_string($con, $_POST['numero_cedula']); $codigo= mysqli_real_escape_string($con, $_POST['codigo']);

$sql1="selectNÚMEROCedula from Teste whereNÚMEROCedula =$numero_cedula";

mysqli_query($con,$sql1);

$sql2="select Codigo from Teste where Codigo =$codigo";

mysqli_query($con,$sql2);

+1

当使用'mysqli'你应该使用参数化查询,而['bind_param'(http://php.net/manual/en/mysqli-stmt.bind-param。 PHP)将用户数据添加到您的查询。 **不要**使用字符串插值来实现此目的,因为您将创建严重的[SQL注入漏洞](http://bobby-tables.com/)。只有在特殊情况下,您才需要手动调用转义函数。 – tadman 2014-10-17 15:56:25

回答

0
  • 修改查询中使用ANDWHERE条款
  • 在检查返回的行与mysqli_num_rows
  • 指望做一些小if()逻辑。

if (mysqli_connect_errno()) { 
    echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
} 

// escape variables for security 
$numero_cedula = mysqli_real_escape_string($con, $_POST['numero_cedula']); 
$codigo = mysqli_real_escape_string($con, $_POST['codigo']); 
$sql1 = "SELECT `Numero Cedula` 
     FROM Teste 
     WHERE `Numero Cedula`=$numero_cedula 
      AND `Codigo`=$codigo"; 
$objGet = mysqli_query($con, $sql1); 

if(mysqli_num_rows($objGet) > 0) { 
    echo "Duplicate"; 
} else { 
    echo "Not a duplicate"; 
}