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';
}
}
}
}
?>
答案 0 :(得分: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注入。
答案 1 :(得分:0)
注意:您的脚本处于SQL注入状态。请尝试使用
Mysqli.*
/PDO
和Prepared Statements
。因此,这将避免SQL注入的脚本。
在您的Update语句中,您没有遵循mysqli/PDO
更新语句语法:
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'");
错误: - ,
条款
WHERE
这是额外的
要强>
$q = mysqli_query($conn, "UPDATE products SET product_name='$p_name_value' WHERE product_id='$id'");