![](/img/trans.png)
[英]How to retrieve imageid and insert it into another table? (Mysqli)
[英]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.