2012-06-05 34 views
0

我有一個INSERT函數,它將圖像文件名插入到「Image」表中的'ImageFile'字段中,每一行都有它自己的ImageId,這要歸功於自動編號。這方面的一個例子如下:如何檢索和插入ImageId?

ImageId ImageFile 

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

我想要做的也是插入圖像標識與QuestionId和SessionID的另一個表,該表(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(); 


?> 
+0

請停止寫作與古代的MySQL擴展新的代碼:它不再保持和社區已經開始了[棄用過程(HTTP://新聞。 php.net/php.internals/53799);您可以使用改進的[MySQLi](http://php.net/mysqli)擴展或[PDO](http://php.net/pdo)抽象層。 – eggyal

+0

@eggyal看看你提供給我的文檔,我是否只是將大部分代碼從「mysql _...」更改爲「mysqli _...」? – user1394925

+0

要使用MySQLi,是的。甚至有[tools](http://forge.mysql.com/wiki/Converting_to_MySQLi)會爲你做轉換。但是,正如wiki所指出的那樣,您還應該利用[準備語句](http://stackoverflow.com/a/60496/623041)可帶來的額外好處。 – eggyal

回答

1

mysqli_insert_id()查詢執行後會做的伎倆

0

可以使用MySQL的last_insert_id()功能獲得最近生成的ID auto_increment。 PHP通過mysql_insert_id()公開。 last_insert_id在每個連接的基礎上工作,所以不需要擔心同時插入交叉ID。

+0

那麼我在哪裏以及如何將它放在我的代碼中? – user1394925

相關問題