首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何检索imageid并将其插入到另一个表中

问如何检索imageid并将其插入到另一个表中
EN

Stack Overflow用户
提问于 2012-06-06 21:18:37
回答 3查看 118关注 0票数 0

我有一个插入函数,它将图像文件名插入到" image“表的'ImageFile‘字段中,由于自动编号,每一行都有它自己的ImageId。下面是一个这样的例子:

代码语言:javascript
复制
ImageId    ImageFile

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

我还想做的是使用QuestionId和SessionId将ImageId插入到另一个表中,以便此表(Image_Question)可以使用ImageId将图像表与图像问题表链接起来。但是,当我在上面的表中插入图像详细信息时,它将检索它的ImageId并将其存储在Image_Question表的ImageId中。示例如下:

代码语言:javascript
复制
ImageId   SessionId  QuestionId

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

我已经为SessionId和QuestionId编写了Insert值,但只需要帮助检索和插入ImageId即可。下面是当前的代码:

代码语言:javascript
复制
<?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,因为那是学校服务器的版本,所以我不得不使用mysql()代码,尽管我知道使用PDO或Mysqli更好。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-06-06 21:21:45

我想你要找的是mysql_insert_id。它将返回最后插入行的id,因此您可以将其赋值给变量,并使用该变量将id插入下一个查询的另一个表中

票数 0
EN

Stack Overflow用户

发布于 2012-06-06 21:27:28

ImageId和SessionId之间不能有逗号

代码语言:javascript
复制
$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()验证输入的浮点数):

代码语言:javascript
复制
$insertimage[] = mysql_real_escape_string($_SESSION['id'] ) . ", " .
                ($_SESSION['initial_count'] > 1 ? $_SESSION['sessionCount'] : '') ." ,". 
                mysql_real_escape_string( $_POST['numQuestion'][$i] );
票数 0
EN

Stack Overflow用户

发布于 2012-06-06 21:32:20

试试这个:

代码语言:javascript
复制
$imagesql = "INSERT INTO Question 
             (ImageId, SessionId, QuestionId) 
             VALUES 
             ((SELECT ImageId FROM image ORDER BY ImageId DESC LIMIT 1),
              " . implode('), (', $insertimage) . ")";
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10915022

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档