从包含该名称的列中删除


Delete from whichever column has the name in it

我有一个取消分配按钮,我想从他所在的任何列中删除登录的人,因为我有 2 列,他可能在其中任何一个列中。

图式:

应用程序

ID int primary key not null auto_increment
Name varchar(50) not null
Email varchar(50) not null
Person1 varchar(10)
Person2 varchar(10)

查询:

mysql_query("delete from App where (App.Person1 OR App.Person2) = '" . addslashes(strip_tags($_SESSION["user"])) . "' and App.ID = '" . addslashes(strip_tags($_SESSION["edit"])) . "'");

如您所见,我尝试使用OR但它不会删除登录的人

你可以做

DELETE FROM App WHERE (App.Person1 = '...' OR App.Person2 = '...') AND App.ID = '...'

您的删除语句是错误的。它必须是:

mysql_query("delete from App where (App.Person1 '" . addslashes(strip_tags($_SESSION["user"])) . "'  OR App.Person2 = '" . addslashes(strip_tags($_SESSION["user"])) . "') and App.ID = '" . addslashes(strip_tags($_SESSION["edit"])) . "'");

还有另外两件事:

  1. 不应使用 mysql_* 函数,因为这些函数已弃用
  2. 您应该使用预准备语句。