2014-10-17 145 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"; 
}