2016-10-03 107 views
-3

mysql结果无法更新值。请检查下面的代码和附图。我需要在单次提交时更新所有表格的值。我怎样才能做到这一点?foreach循环更新多个mysql值

<?php 
    if (isset($_POST['submit_update'])) { 
     $product_id = $_POST['id']; 
     // echo "<pre>"; 
     // var_dump($product_id);die; 
     $p_name = $_POST['p_name']; 
     $cat_name = $_POST['cat_name']; 
     $stock_ava = $_POST['stock_ava']; 
     $max_odr = $_POST['max_odr']; 
     $price = $_POST['price']; 
     foreach ($product_id as $id) { 

     foreach ($p_name as $p_name_value) { 
      // echo "<pre>"; 
      // var_dump($id); 
      $q = mysqli_query($conn, "UPDATE products SET product_name='$p_name_value', WHERE product_id='$id'"); 
      if ($q==1) { 
      echo "success"; 
      }else{ 
      echo 'fail'; 
      } 
     } 
     } 
    } 
    ?> 

this is my tables looks like

+0

如果测试的状态在这里,在这,是额外的WHERE条款

之前所有'mysqli_query()'调用和ec ho'mysqli_error($ con);'你会看到你的编译错误。然后你可以修复你自己的TYPO的 – RiggsFolly

+0

你的脚本存在[SQL注入攻击]的风险(http://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php) 有看看发生了什么[小巴比表](http://bobby-tables.com/)即使 [如果你逃避投入,它不安全!](http://stackoverflow.com/questions/5741187/ sql -injection-that-gets-around-mysql-real-escape-string) 使用[prepared parameterized statements](http://php.net/manual/en/mysqli.quickstart.prepared-statements.php) – RiggsFolly

回答

0

变化

"UPDATE products SET product_name='$p_name_value', WHERE product_id='$id' 

"UPDATE products SET product_name='$p_name_value' WHERE product_id='$id' 

设定值后除去,。 此外,请仔细阅读有关SQL注入的内容,在查询中传递参数将导致SQL注入。

0

Note: Your Script is at SQL Injection. Please Try to use Mysqli.*/PDO along with Prepared Statements . Hence that will avoid the scripts from SQL Injections.

在你的更新语句中,没有按照其在mysqli/PDO

UPDATE语句的语法提供了更新的语法:

UPDATE table_name SET field1=new-value1, field2=new-value2 [WHERE Clause] 
  • 您可以更新一个或多个字段一起。
  • 您可以使用WHERE子句指定任何条件。

注: - 在哪里,当你想在一个更新表中选择的行子句是非常有用的。

因此根据语法你必须改变你的代码。

替换:

$q = mysqli_query($conn, "UPDATE products SET product_name='$p_name_value', WHERE product_id='$id'"); 

错误: - :

$q = mysqli_query($conn, "UPDATE products SET product_name='$p_name_value' WHERE product_id='$id'");