【发布时间】:2015-10-29 13:49:51
【问题描述】:
我使用 foreach 循环更新单个 mysql 记录,该循环获取 $_POST 变量的名称和值并更新当时的记录列,$_POST 变量的名称与 mysql 列名相同
这里是代码
foreach ($_POST as $key => $value) {
$value = mysqli_real_escape_string($con, $value );
$value = strip_tags($value);
$sql="UPDATE properties SET $key = '$value' WHERE propertyID='$propertyID'";
$query = mysqli_query($con, $sql);
if (mysqli_errno($con)){$error=1;}
}//end foreach loop
unset($value);
unset($key);
这很好用
但是我正在尝试将循环转换为使用 PDO。我曾尝试查看有关此主题的先前帖子,但仍然无法使其正常工作
这是我尝试过的代码:
foreach ($_POST as $key => $value) {
$value = mysqli_real_escape_string($con, $value );
$value = strip_tags($value);
$sql="UPDATE vendors SET $key = '$value' WHERE vendorID='$vendorID'";
$stmt = $pdo->prepare($sql);
$stmt->bindValue($key, $value); //have also tried bindParam!!
$stmt->execute();
}//end foreach loop
unset($value);
unset($key);
这会运行但不会更新任何列,有人可以帮忙吗?
感谢
鲍勃
【问题讨论】:
-
是否显示任何错误?是否启用错误报告?
-
这是真的吗,您一次为多列更新同一个表一列。
You cannot be serious当你重新审视这个烂摊子时,尝试同时重构你的基本概念 -
嘿鲍勃。 边吃边跑有点不礼貌 有大神帮忙解答一下吗?如果他们接近了,请询问更多信息。如果答案回答了您的问题,则接受该答案。它阻止人们继续提供答案,并让其他人在搜索类似问题时知道是什么解决了您的问题。