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();