[英]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';
不確定我是否正確理解了您,但是據我了解,應該這樣做:
INSERT INTO images
(imgid, imgname, categoryfk)
VALUES
('$x', '$category1', 1),
('$x', '$category2', 2),
('$x', '$allimages', 3)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.