我正在使用PDO来更新我的数据库。我正在使用循环来显示输入框中的ID和值。现在我有:
foreach ($data as $row): ?>
<form action="" method ="post">
<input type="text" name="Name[<?=$row['ID']?>]">
<input type="hidden" name="NameID[<?=$row['ID']?>]" value="<?=$row["ID"]?>">
<input type="submit" class="button" value="Submit" name="NameEnter[<?=$row["ID"]?>]">
</form>
<?endforeach?>
显然会输出名称[1],名称[2]等
对于我的PDO,当我去更新它时,我该如何获得
$name = $_POST["Name"];
$ID = $_POST["ID"];
if(isset($_POST['NameEnter'])) {
$update = $db->prepare("UPDATE Table SET Name = ? WHERE ID = ?");
$update->execute(array($name,$ID));
}
它不断输出ARRAY的值而不是实际输入的值。我认为它与$name
循环是一样的吗?
答案 0 :(得分:2)
每次循环该循环,您创建一个单独的表单,您不需要输入字段的复杂命名约定
border
然后是一段简单的代码,可以很容易地找出$ _POST数组中的字段名称。
foreach ($data as $row): ?>
<form action="" method ="post">
<input type="text" name="Name">
<input type="hidden" name="ID" value="<?=$row["ID"]?>">
<input type="submit" class="button" value="Submit" name="NameEnter">
</form>
<?endforeach?>
答案 1 :(得分:0)
语法:$stmt->bindValue(':placeholder', $value, PDO::PARAM_TYPE);
$update = $db->prepare("UPDATE Table SET Name = :name WHERE ID = :id");
$update->bindValue(':name', $name, PDO::PARAM_STR);
$update->bindValue(':id', $id, PDO::PARAM_INT);
$update->execute();