【问题标题】:SQL: insert value into foreign keySQL:将值插入外键
【发布时间】:2010-09-01 09:05:19
【问题描述】:

我正在为我正在创建的网站使用 phpmyadmin,并且对将值插入外键有疑问。

当事件表中的事件 col 是值 x 时,我能够选择图像表 id,即...

$event = "Partay";

$sql = "SELECT i.ImageID
FROM images i 
INNER JOIN events e 
ON i.eventID = e.eventID
WHERE e.event ='".$event."'";

这适用于选择要显示的图像。但是,当我想插入图像时,内部连接似乎不起作用。

$sql = "INSERT INTO images i (i.image, e.event) 
INNER JOIN event e 
ON i.eventID = e.eventID
VALUES ('".$content."','".$event."')";

-我试图将图像插入图像表并将新事件插入事件表,以便这个新图像属于这个新事件。 -当插入带有现有事件的图像时,插入如何工作?

任何帮助都会很好,谢谢。

【问题讨论】:

    标签: php sql phpmyadmin


    【解决方案1】:

    您应该首先插入事件,如果确定,然后插入图像(如果有)。 不知道,你想怎么做,但我认为你应该检查是否有你想要的插入或更新。

    在这两种情况下,您都应该使用事务来确保插入所有您想要或根本不插入的内容。 (本例中的事件和图像)。

    阅读有关事务和隔离级别的内容以更好地理解这一点。

    【讨论】:

      【解决方案2】:

      使用包装在事务中的两个单独的插入语句。

      要为已存在的事件插入图像,只需对图像使用 insert 语句即可。

      【讨论】:

      • php 不允许我执行事务语句,即使是我后面执行查询、提交和结束的非常基本的语句。我找到了一些嵌套 if 的解决方法,谢谢
      • 如果需要,这里有一篇关于 PHP 事务的文章:devarticles.com/c/a/MySQL/…
      【解决方案3】:

      无效的 SQL 语法。 SQL 中的一条指令是不可能做到的。

      插入事件,然后插入图像。如果要确保原子性(确保两者都成功或没有插入寄存器),请使用像 swarFish 所说的事务。

      【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-05-20
      • 1970-01-01
      • 1970-01-01
      • 2019-05-10
      • 1970-01-01
      • 2017-07-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多