【问题标题】:Delete from whichever column has the name in it从具有名称的列中删除
【发布时间】:2015-03-31 02:23:46
【问题描述】:

我有一个取消分配按钮,我想从他所在的列中删除登录的人,因为我有 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,但它不会删除从中登录的人

【问题讨论】:

    标签: php mysql sql session select


    【解决方案1】:

    你可以的

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

    【讨论】:

      【解决方案2】:

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

      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. 您应该使用准备好的语句。

      【讨论】:

      • 赞成它...但在我接受它之前..我将如何为分配按钮做呢?我知道使用INSERT INTO 语句,但我只想将其插入Person1Person2,如果它们中的任何一个是NULL
      • @User 我找不到你。但我认为这是一个新问题。所以你应该这样问。
      • 我不按照逻辑接受这个。它是在我回答之后发布的,实际上是相同的,而且还不必要地重复了代码。
      • @MightyPork 我和你同时写了这篇文章。但需要更多时间。接受哪个答案是 OP 的决定。所以我认为写下正确答案不是一个好习惯。
      • @MightyPork 这不是同一个答案!!您的答案中没有两个提示。
      猜你喜欢
      • 2021-11-12
      • 1970-01-01
      • 1970-01-01
      • 2022-01-15
      • 2019-01-05
      • 2020-07-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多