我有一个PHP文件,其中包含来自iOS应用程序的POST变量。
我想进行的操作是检查POST变量是否为空。如果没有,我希望它执行我编写的查询。我发现的是它只执行我拥有的3个列表中的最后一个查询。我什至切换了3的顺序,即使所有3均为TRUE,它似乎仍然只执行最后一个。
$item = $_POST['item'];
$price = $_POST['price'];
$salePrice = $_POST['salePrice'];
$newItemUpdate = $_POST['newItemUpdate'];
if(isset($item))
{
$query = "UPDATE Price_List Set Item = ('".$newItemUpdate."') WHERE Item = ('".$item."')";
}
if(isset($salePrice))
{
$query = "UPDATE Price_List Set SalePrice = ('".$salePrice."') WHERE Item = ('".$item."')";
}
if(isset($price))
{
$query = "UPDATE Price_List Set Price = ('".$price."') WHERE Item = ('".$item."')";
}
答案 0 :(得分:1)
您正在对所有三个查询使用$ query变量,从而导致覆盖前两个变量。 请更改您的变量名或在每种情况下执行查询。
答案 1 :(得分:0)
在进入下一个query
之前,先在if条件内执行每个query
,或者如果以后要执行它们,则对每个查询使用不同的变量名。如下所示:
$item = $_POST['item'];
$price = $_POST['price'];
$salePrice = $_POST['salePrice'];
$newItemUpdate = $_POST['newItemUpdate'];
if(isset($item))
{
$query1 = "UPDATE Price_List Set Item = ('".$newItemUpdate."') WHERE Item =
('".$item."')";
}
if(isset($salePrice))
{
$query2 = "UPDATE Price_List Set SalePrice = ('".$salePrice."') WHERE Item =
('".$item."')";
}
if(isset($price))
{
$query3 = "UPDATE Price_List Set Price = ('".$price."') WHERE Item =
('".$item."')";
}
答案 2 :(得分:0)
因为您为query
变量使用了相同的名称,这就是为什么最后一个query
变量会覆盖两个查询变量以及它只执行最后一个查询的原因。
因此需要更改变量名称并执行三次,否则在query
之后的条件内执行
$item = $_POST['item'];
$price = $_POST['price'];
$salePrice = $_POST['salePrice'];
$newItemUpdate = $_POST['newItemUpdate'];
if(isset($item))
{
$query = "UPDATE Price_List Set Item = ('".$newItemUpdate."') WHERE Item = ('".$item."')";
//query execute here
}
if(isset($salePrice))
{
$query = "UPDATE Price_List Set SalePrice = ('".$salePrice."') WHERE Item = ('".$item."')";
//query execute here
}
if(isset($price))
{
$query = "UPDATE Price_List Set Price = ('".$price."') WHERE Item = ('".$item."')";
//query execute here
}
//OR execute with different name
//execute query1
//execute query2
//execute query3