[英]Update database, in foreach loop?
在我正在创建的纸牌游戏中,我需要在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语法有错误;请参阅附录A。 检查与您的MySQL服务器版本相对应的手册以获取正确的语法,以在第126行的E:\\ wamp \\ www \\ index.php的第1行的'ss1'='13'WHERE comp = 0'附近使用
警告:PDOStatement :: execute():SQLSTATE [42000]:语法错误或访问冲突:1064您的SQL语法有错误;请参阅附录A。 检查与您的MySQL服务器版本相对应的手册以获取正确的语法,以在第126行的E:\\ wamp \\ www \\ index.php的第1行的'ss2'='15'WHERE comp = 0'附近使用
等等..
关于如何绕过复选框的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;
}
if (isset($_POST['hand']) == true)
{
if (sizeof($_POST['checkbox']) == 3)
{
foreach($_POST['checkbox'] as $checkbox)
{
$query = "UPDATE games SET ss$ver = ? WHERE comp = 0";
$db->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING );
$stmt = $db->prepare($query);
// $stmt->bindValue(1, 'ss'.$ver);
$stmt->bindValue(1, $checkbox);
$stmt->execute();
$ver = $ver + 1;
echo $checkbox.'<br/>';
}
}
else
{
echo 'You must only select 3 cards.';
}
}
无法在列/表名称上绑定变量。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.