簡體   English   中英

如何獲取imageid並將其插入到另一個表中

[英]How to retrive imageid and insert it into another table

我有一個INSERT函數,其中將圖像文件名插入“圖像”表的“ ImageFile”字段中,由於自動編號,每一行都有它自己的ImageId。 下面是一個示例:

ImageId    ImageFile

23         orange.jpg
24         flowers.png
25         castle.png
26         orange.jpg

我還想將ImageId插入具有QuestionId和SessionId的另一個表中,以便該表(Image_Question)可以使用ImageId將Image表與Image Question表鏈接。 但是如何編碼,以便在上表中插入圖像詳細信息時,它將檢索它的ImageId並將其存儲在Image_Question表的ImageId中。 下面的例子:

ImageId   SessionId  QuestionId

23        AAA        1
24        AAA        2
25        AAA        3
26        AAA        4

我已經為SessionId和QuestionId編碼了INSERT值,但只需要幫助檢索和插入ImageId。 下面是當前代碼:

<?php

session_start();


//connect to db

$i = 0;

$insertimage = array();

for($i = 0;  $i < $c; $i++ ){


    $insertimage[] = "'". mysql_real_escape_string($_SESSION['id'] ) . 
                    ($_SESSION['initial_count'] > 1 ? $_SESSION['sessionCount'] : '') ."' ,'". 
                    mysql_real_escape_string( $_POST['numQuestion'][$i] ) ."'";

}


 $imagesql = "INSERT INTO Question (ImageId, SessionId, QuestionId) 
    VALUES (" . implode('), (', $insertimage) . ")";

echo($imagesql);

mysql_close();


?>

我有一個舊的php版本5.2.13,因為那是大學服務器的版本,所以即使我知道最好使用PDO或Mysqli,我也必須使用mysql()代碼。

我認為您正在尋找的是mysql_insert_id 它將返回最后插入的行的ID,因此您可以將其分配給變量,並使用該變量將ID插入下一個查詢的另一個表中

您在ImageId和SessionId之間沒有逗號

$insertimage[] = "'". mysql_real_escape_string($_SESSION['id'] ) . "', '" .
                ($_SESSION['initial_count'] > 1 ? $_SESSION['sessionCount'] : '') ."' ,'". 
                mysql_real_escape_string( $_POST['numQuestion'][$i] ) ."'";

同樣,如果Id是數字,則刪除單引號(在這種情況下,您也不需要mysql_real_escape_string ,只需使用is_numeric()驗證輸入為數字,而不是is_float()驗證浮點):

$insertimage[] = mysql_real_escape_string($_SESSION['id'] ) . ", " .
                ($_SESSION['initial_count'] > 1 ? $_SESSION['sessionCount'] : '') ." ,". 
                mysql_real_escape_string( $_POST['numQuestion'][$i] );

試試這個:

$imagesql = "INSERT INTO Question 
             (ImageId, SessionId, QuestionId) 
             VALUES 
             ((SELECT ImageId FROM image ORDER BY ImageId DESC LIMIT 1),
              " . implode('), (', $insertimage) . ")";

暫無
暫無

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

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