我正在尝试使用PDO将序列化表单数据存储到mysql中。数据库表列名,字段名一切都是动态的。
update.php
$data = $_POST['data'];
parse_str($_POST['data'], $searcharray);
foreach($searcharray['column_name'] as $key=>$value) {
echo $value;
}
foreach($searcharray['data_name'] as $k=>$v) {
echo $v;
}
此处下面的foreach循环返回 colname_1colname_2colname_3 (不含逗号)
foreach($searcharray['column_name'] as $key=>$value) {
echo $value;
}
另一个foreach循环返回 biketvssuzuki (没有逗号)
foreach($searcharray['data_name'] as $k=>$v) {
echo $v;
}
我想更新 colname_1 中的自行车和 colname_2 中的 tvs 和铃木在 colname_2 中。如何在PDO查询中执行以上两个foreach循环?
try
{
$update_query = $dbh->prepare("UPDATE ".REQUIREMENTS_DB." SET colname_1 = ?, colname_2 = ?, colname_3 = ? WHERE id = :id");
$update_query->bindParam(':id', $id);
$update_query->execute();
echo "Updated Successfully";
}
catch (PDOException $e)
{
die('Error ' . $e->getMessage());
}
答案 0 :(得分:1)
$sql = "UPDATE ".REQUIREMENTS_DB." SET ";
for ($i = 0; $i < count($searcharray['column_name']); $i++) {
$sql .= $searcharray['column_name'][$i]." = ".$searcharray['data_name'][$i];
if ($i < (count($searcharray['column_name'])-1)) $sql .= ", "
}
$sql .= "WHERE id = :id";
$update_query = $dbh->prepare($sql);
...
这是非常基本的代码,可以/应该进行很多改进。