在我創建的紙牌遊戲中,我需要在foreach循環中更新數據庫,因爲它們每3張牌就更新數據庫,以便爲他們創建的牌更新數據庫。在foreach循環中更新數據庫?
我遇到的問題是,即使它看起來是正確的,它不工作。
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中的''ss1'='13'處的WHERE comp = 0處使用正確的語法。
警告:PDOStatement :: execute():SQLSTATE [42000]:語法錯誤或訪問衝突:1064您的SQL語法中有錯誤;檢查對應於您的MySQL服務器版本的手冊,以便在第126行的E:\ wamp \ www \ index.php中的''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;
}
問題是你不能使用列/表名等變量綁定,因爲沒有「數據」,因此不支持綁定。恭喜發現。 – Passerby