簡體   English   中英

PHP和MYSQL:插入外鍵

[英]PHP and MYSQL: Inserting Foreign Key

我有兩個表,IMAGES和CATEGORIES。

圖像類別是1:M關系(許多圖像可以具有1個類別)。

我想將圖像從文件系統插入數據庫,並在此過程中動態分配外鍵類別。

我想通過一個插入來實現此目的,但是看來我需要為每個圖像類別插入一個插入,如下所示:

 $allimages = scandir('./images/all_images/');
 $category1= scandir('./images/category1/');
 $category2= scandir('./images/category2/');

//CATEGORY 1: 
for($x=0; $x<count($category1); $x++)
{   
if(!is_dir(IMAGES_PATH . $category1[$x]))   
{  
  INSERT INTO images (imgid, imgname, categoryfk) VALUES ('$x', '$category1', 1)

//CATEGORY 2: 
for($x=0; $x<count($category2); $x++)
{   
if(!is_dir(IMAGES_PATH . $category2[$x]))   
{  
  INSERT INTO images (imgid, imgname, categoryfk) VALUES ('$x', '$category2', 2)

//CATEGORY 3: 
for($x=0; $x<count($allimages); $x++)
{   
if(!is_dir(IMAGES_PATH . $allimages[$x]))   
{  
  INSERT INTO images (imgid, imgname, categoryfk) VALUES ('$x', '$allimages', 3)

這真的是我做到這一點的唯一方法嗎? 我可以在單個插入和循環中實現此類別分配嗎?

謝謝!

此外,您還可以看看上飛外鍵插入一個查找的結果,例如,查找為“1類”的外鍵,然后插入一個新的形象這一類引用:

INSERT INTO Images(imgId, imgname, categoryFk)
   SELECT 9876, 'photo1.jpg', cat.categoryId
   FROM Category cat
   WHERE cat.categoryName = 'Category 1';

SQLFiddle在這里

不確定我是否正確理解了您,但是據我了解,應該這樣做:

INSERT INTO images 
   (imgid, imgname, categoryfk) 
VALUES 
   ('$x', '$category1', 1),
   ('$x', '$category2', 2),
   ('$x', '$allimages', 3)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM