Php 从POST名称更新表
我有这个密码Php 从POST名称更新表,php,mysql,Php,Mysql,我有这个密码 while($row=$stmt->fetch(PDO::FETCH_ASSOC)) { $rName = $row['abb']; echo $row['name']; ?> <html> <select id="<?php echo $rName;?>"> <option value="Yes">Enabled</option> <option
while($row=$stmt->fetch(PDO::FETCH_ASSOC))
{
$rName = $row['abb'];
echo $row['name'];
?>
<html>
<select id="<?php echo $rName;?>">
<option value="Yes">Enabled</option>
<option value="No">Disabled</option>
</select>
<?php
echo '<br>';
}
echo '<br>';
echo '<input type="submit" name="submit"/>';
echo '</form>';
这样做给了我这个错误
致命错误:未捕获异常“PDOException”,消息为“SQLSTATE[42000]:语法错误或访问冲突:1064您的SQL语法有错误;检查与MySQL服务器版本对应的手册,以了解在/nfs/c11/h05/mnt//html/orderpage.php:204堆栈跟踪:#0/nfs/c11/h05/mnt/h05/mnt/2080/html/orderpage.php(204):PDOStatement->execute()#1{main}在第204行的/nfs/c11/h05//html/orderpage.php中抛出
为select a name属性指定一个变量,并为带有表单的POST/GET数组指定一个变量。我看不到开始表单标签,所以我不知道你在这里使用的是哪种方法。你能给我举个例子吗?我知道如何做$new=$_POST['op2'];。。。。但是我可能没有全部24个操作,所以如果我也有,我还需要为其中24个编写所有代码吗?然后你需要使用一个带有键值的
foreach
,并检查数组中的空值。我还在想,我现在有点麻烦了。让我困惑的是你的
。我想你想用这些来更新给定行的是或否?如果已经动态创建了这些行,那么正如我所说的,向其中添加一个name属性,等等。。。然后在更新中,您将基于以下模型:$var=$\u POST['select\u name']。。。“更新表集合col_x='xxx',其中col_y='$var'
事物类型。如果这就是问题所在。对于用于执行更新的每个变量,需要用引号括起来,即op4='$op4'
。更好的方法是使用语句。为select指定一个name属性,并使用表单将变量分配给POST/GET数组。我看不到开始表单标签,所以我不知道你在这里使用的是哪种方法。你能给我举个例子吗?我知道如何做$new=$_POST['op2'];。。。。但是我可能没有全部24个操作,所以如果我也有,我还需要为其中24个编写所有代码吗?然后你需要使用一个带有键值的foreach
,并检查数组中的空值。我还在想,我现在有点麻烦了。让我困惑的是你的
。我想你想用这些来更新给定行的是或否?如果已经动态创建了这些行,那么正如我所说的,向其中添加一个name属性,等等。。。然后在更新中,您将基于以下模型:$var=$\u POST['select\u name']。。。“更新表集合col_x='xxx',其中col_y='$var'
事物类型。如果这就是问题所在。对于用于执行更新的每个变量,需要用引号括起来,即op4='$op4'
。更好的方法是使用语句来表示。
if(isset($_POST['submit'])){
$userIDi = $user['ident'];
$op2 = $_POST['op2'];
$op3 = $_POST['op3'];
$op4 = $_POST['op4'];
$op5 = $_POST['op5'];
$op6 = $_POST['op6'];
$op7 = $_POST['op7'];
$op8 = $_POST['op8'];
$op9 = $_POST['op9'];
$op10 = $_POST['op10'];
$op11 = $_POST['op11'];
$op12 = $_POST['op12'];
$op13 = $_POST['op13'];
$stmt=$con->prepare("UPDATE priv SET op2 = $op2, op3 = $op3, op4 = $op4, op5 = $op5,
op6 = $op6, op7 = $op7, op8 = $op8, op9 = $op9, op10 = $op10, op11 = $op11, op12 = $op12, op13 = $op13 WHERE ident = :ID");
$stmt->bindparam(":ID", $userIDi);
$stmt->execute();