我有这段代码
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>';
所以你可以看到,每当我有一个新的$row['name']
时,它会创建一个名为$row['abb']
的新选择器
如何更新表priv并将该选择器中的值放入与选择器同名的行中。
例如,如果我有两个$row['name']
,则会创建两个$row['abb']
一个名为op2,另一个名为op3
在我的priv表中,我有行op2-op24。那么我怎么能这样做所以它知道用这个值更新正确的行?
更新1 **
我试过这个
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();
这样做给了我这个错误
致命错误:未捕获的异常&#39; PDOException&#39; with message&#39; SQLSTATE [42000]:语法错误或访问冲突:1064 SQL语法中有错误;检查与您的MySQL服务器版本相对应的手册,以获得正确的语法,以便在&#39;附近使用。 op4 =,op5 =,op6 =,op7 =,op8 =,op9 =,op10 =,op11 =,op12 =,op&#39;在第1行&#39;在/nfs/c11/h05/mnt//html/orderpage.php:204堆栈跟踪:#0 /nfs/c11/h05/mnt/2080/html/orderpage.php(204):PDOStatement-&gt; execute()在第204行的/nfs/c11/h05//html/orderpage.php中抛出#1 {main}