【发布时间】:2012-06-11 05:54:06
【问题描述】:
我有一个 INSERT 函数,它在“Image”表的“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 表链接。现在我正在尝试使用 mysql_insert_id 从 Image 表中检索 ImageId 并将其存储在 Image_Question 表中的 ImageId 中。
但我似乎无法弄清楚我需要做什么,目前图像表中的 INSERTING 值工作正常,但它没有在 Image_Question 表中插入任何值。
所以我的问题是对于插入到 Image 表中的每一行,在将 Image 表插入到 Image 表后如何从 Image 表中检索 ImageId,并使用 mysql_insert_id() 将其插入到 Image_Question 表中? 示例如下:
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
$result = 0;
$i = 0;
$insertimage = array();
move_uploaded_file($_FILES["fileImage"]["tmp_name"],
"ImageFiles/" . $_FILES["fileImage"]["name"]);
$result = 1;
$imagesql = "INSERT INTO Image (ImageFile)
VALUES ('ImageFiles/".mysql_real_escape_string($_FILES['fileImage']['name'])."')";
mysql_query($imagesql);
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] ) ."'";
}
$imageinsertsql .= "INSERT INTO Image_Question
(ImageId, SessionId, QuestionId)
VALUES
((SELECT ImageId FROM Image ORDER BY ImageId DESC LIMIT 1),
" . implode('), (', $insertimage) . ")";
mysql_query($imageinsertsql);
}
mysql_close();
?>
我有一个旧的 php 版本 5.2.13,因为那是大学服务器的版本。
【问题讨论】:
-
我以为这里解决了? stackoverflow.com/questions/10915022/…
-
当您提出“不工作”类型的问题时,请发布您收到的任何错误消息。如果您没有看到错误,则需要启用 PHP 错误报告/日志记录设置,例如
display_errors。 -
您可以使用 mysql 触发器更新第二个表,第一个表的 id 参考 mysql refrence maual