繁体   English   中英

更新数据库,在foreach循环中?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM