【问题标题】:Linking two tables in a query在查询中链接两个表
【发布时间】:2009-07-18 20:29:21
【问题描述】:

我有两个字段...一个是类别名称,另一个是文档标题...当我单击提交时...文档标题应保存在链接到所选类别名称的文档表中...这是在其他表中。

一个类别可以有 n 个文档标题...

 $result = mysql_query("UPDATE stinky_menu SET description  = '$docuTitle', url = '$linkTitle' WHERE title = '$catID'");

如何在 WHERE 子句中对我的另一个表执行另一个查询。

【问题讨论】:

  • 我希望这是伪代码。否则你会遇到一些严重的 sql 注入问题。我建议您在 PDO 或 mysqli 中使用准备好的语句。

标签: php mysql


【解决方案1】:

通常我通过让 HTML 表单中的选择框返回类别 ID 而不是标题来处理这种情况。这允许我插入或更新记录,而无需额外查找我的参考表(在本例中是您的类别表)。

【讨论】:

    【解决方案2】:

    使用 :named 形式的参数(?-form 当然也可以),做你想做的最简单的方法是在你的更新中使用 FROM 和 JOIN - 像(取决于你没有的一些细节提供):

    UPDATE stinkymenu
    SET description = :docuTitle, url = :linkTitle
    FROM stinkymenu
    JOIN categorytable
    ON stinkymenu.catId = categorytable.id
    WHERE categorytable.title = :catId
    

    请参阅PDO's docs,了解如何使用这种“准备好的语句”并将其参数绑定到您的变量。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-11-25
      • 2018-01-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-13
      • 1970-01-01
      • 2014-11-07
      相关资源
      最近更新 更多