在我正在创建的纸牌游戏中,我需要在 foreach 循环中更新数据库,因为每 3 张纸牌checkbox
更新他们创建的手牌的数据库。
我遇到的问题是,即使它看起来是正确的,它也不起作用。
if (isset($_POST['hand']) == true)
{
if (sizeof($_POST['checkbox']) == 3)
{
foreach($_POST['checkbox'] as $checkbox)
{
$query = "UPDATE games SET ? = ? WHERE comp = 0";
$db->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING );
$stmt = $db->prepare($query);
$stmt->bindValue(1, "ss$ver");
$stmt->bindValue(2, $checkbox);
$stmt->execute();
$ver = $ver + 1;
echo $checkbox.'<br/>';
}
}
else
{
echo 'You must only select 3 cards.';
}
}
$ver
以便卡片可以在 foreach 循环中完成。"ss$ver"
每次循环循环时/'ss'.$ver
都会递增,以便它遵循数据库中的下一个field title
/ column
。但是我得到的 mySQL 错误是这样的。
警告:PDOStatement::execute(): SQLSTATE[42000]: 语法错误或访问冲突:1064 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 126 行的 E:\wamp\www\index.php 的第 1 行的 ''ss1' = '13' WHERE comp = 0' 附近使用正确的语法
警告:PDOStatement::execute(): SQLSTATE[42000]: 语法错误或访问冲突:1064 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 126 行的 E:\wamp\www\index.php 的第 1 行的 ''ss2' = '15' WHERE comp = 0' 附近使用正确的语法
ETC..
关于如何绕过复选框的 foreach 循环或在循环中实际更新的任何想法?
任何帮助表示赞赏!
而对于形式
echo '<form input="index.php" method="post">';
foreach($fetch as $key => $value)
{
$check = '<input class="check" type="checkbox" name="checkbox[]" value="'.$value.'">';
echo $cards[$value].$check;
}