一旦有人点击网站上的按钮,我想用SQL语句更新我的数据库。我尝试过一些东西,没有成功。你们能帮助我吗?这是代码:
http://pastebin.com/D0S83Jgh
不知道我是否正确地提出了这个问题,我是新来的。
答案 0 :(得分:1)
您准备好的陈述是错误的。
我与pdo一起用来进行查询的代码是这样的:
$sqlUpd = $upd->prepare("UPDATE league_signups SET approved='1' WHERE id = :id");
$q->bindParam(':id', $id, PDO::PARAM_STR);
$q->execute();
应该像魅力一样工作。
答案 1 :(得分:0)
从主循环中获取此代码:while($ row = $ q-> fetch(PDO :: FETCH_ASSOC)){}
<?php
include('pdoconnect.php');
$id = isset($row['id'];
if(isset($_REQUEST['approve']))
{
$sqlUpd = "UPDATE league_signups SET approved='1' WHERE id=$id";
$q = $upd->prepare($sqlUpd);
$q->execute();
}
if(isset($_REQUEST['unapprove']))
{
$sqlUpd = "UPDATE league_signups SET approved='0' WHERE id=$id";
$q = $upd->prepare($sqlUpd);
$q->execute();
}
?>
将此代码放在循环结束或代码开头之后......
您要更新的数据来自我正确的复选框吗?那么你可能想要循环更新所有选中的值,复选框为相应的操作'approve'或'unapproved'
删除include('pdoconnect.php');如果你从一开始就包含这个文件就完全没必要了
<?php
// checkbox[] it's an array...
$UpdateIDs = (isset($_REQUEST['checkbox'])) ? $_REQUEST['checkbox'] : [];
// check if $_REQUEST['approve'] is set else check if $_REQUEST['unapprove'] is set else set $approve to null;
$approved = (isset($_REQUEST['approve']) ?
$_REQUEST['approve'] :
(isset($_REQUEST['unapprove'])) ? $_REQUEST['unapprove'] : null;
if(!is_null($approved))
{
try {
foreach($UpdateIDs as $ID)
{
$stmt = $upd->prepare("UPDATE league_signups SET approved=:approved WHERE id=:id");
$stmt->execute([
':approved' => $approved,
':id' => $ID
]);
}
} catch(PDOException $e) {
echo 'ERROR: ' . $e->getMessage();
}
}