【问题标题】:How to retrieve and insert ImageId?如何检索和插入 ImageId?
【发布时间】:2012-06-09 23:37:03
【问题描述】:

我有一个 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 表链接起来。但是我该如何编码,以便当我在上表中插入图像详细信息时,它将检索它的 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();


?>

【问题讨论】:

  • 请停止使用古老的 MySQL 扩展编写新代码:它不再维护,社区已开始 deprecation process;您可以改用改进的MySQLi 扩展或PDO 抽象层。
  • @eggyal 查看您提供给我的文档,我是否只是将大部分代码从“mysql_...”更改为“mysqli_...”?
  • 要使用 MySQLi,是的。甚至有tools 会为您进行转换。但是,正如该 wiki 所述,您还应该利用 prepared statements 可以带来的额外好处。

标签: php mysql


【解决方案1】:

查询执行后的mysqli_insert_id() 可以解决问题

【讨论】:

    【解决方案2】:

    您可以使用 MySQL 的 last_insert_id() 函数获取最近生成的 auto_increment id。 PHP 通过mysql_insert_id() 公开了这一点。 last_insert_id 在每个连接的基础上工作,因此无需担心并发插入跨越 id。

    【讨论】:

      猜你喜欢
      • 2012-07-18
      • 2011-11-02
      • 1970-01-01
      • 2012-08-30
      • 2013-06-06
      • 2012-07-05
      • 2015-05-30
      • 2014-09-23
      • 1970-01-01
      相关资源
      最近更新 更多