我想这样做,如果$_SESSION["user"]
中存在App.Person1
,则将其设置为null,否则将App.Person2
设置为null。
这是我当前要取消分配的查询:
update App set App.Person1 = NULL where App.Person1 = '" . addslashes(strip_tags($_SESSION["user"])) . "' and App.ID = '" . addslashes(strip_tags($_SESSION["edit"])) . "' || update App set App.Person2 = NULL where App.Person2 = '" . addslashes(strip_tags($_SESSION["user"])) . "' and App.ID = '" . addslashes(strip_tags($_SESSION["edit"])) . "'"
问题:似乎没有使用此查询更新字段
示例:
我这里有三列,我以Tommy
登录:
App.ID App.Person1 App.Person2
1 Tommy Green
由于Tommy存在Person1
,当我点击该按钮时,我希望它更改为null
。
这是另一个例子:
App.ID App.Person1 App.Person2
1 Green Tommy
由于Tommy
中不存在Person1
,我希望Person2
更改为null
问题:是否有使用嵌套查询或案例陈述的解决方案可用于解决此问题?
答案 0 :(得分:1)
$sql = 'SELECT * FROM App WHERE Person1 = :person1 OR Person2 = :person2';
$stmt = $pdo->prepare($sql);
$stmt->bindValue(':person1' $_SESSION["user"], PDO::PARAM_STR);
$stmt->bindValue(':person2' $_SESSION["user"], PDO::PARAM_STR);
if($stmt->execute() === FALSE){
Throw new \Exception('could not connect!');
}
$rows = $stmt->fetchAll(PDO::FETCH_ASSOC);
foreach($rows as $row){
if($row['Person1'] == $_SESSION["user"]) {
//Do update for person1
}
else {
//Do update for person2
}
}
希望有所帮助!
答案 1 :(得分:0)
这基本上是你想要的吗?
update App
set Person1 = NULL
where Person1 = $_SESSION["user"];
update App
set Person2 = NULL
where Person2 = $_SESSION["user"];