0

以下にmysqliコードがあり、ファイルをアップロードして「画像」テーブルにデータを挿入します。

<?php

session_start();


$username="xxx";
$password="xxx";
$database="mobile_app";

  $mysqli = new mysqli("localhost", $username, $password, $database);

  /* check connection */
  if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    die();
  }

$result = 0;

      move_uploaded_file($_FILES["fileImage"]["tmp_name"],
      "ImageFiles/" . $_FILES["fileImage"]["name"]);
      $result = 1;

    $imagesql = "INSERT INTO Image (ImageFile) 
    VALUES (?)";

            if (!$insert = $mysqli->prepare($imagesql)) {
      // Handle errors with prepare operation here
    }

    //Dont pass data directly to bind_param store it in a variable
$insert->bind_param("s",$img);

//Assign the variable
$img = 'ImageFiles/'.$_FILES['fileImage']['name'];

 $insert->execute();

      }

  }



?>

たとえば、2つの画像「cat.png」と「dog.png」を「Image」データベーステーブルに挿入すると、次のように挿入されます。

ImageId         ImageFile

220             cat.png
221             dog.png

(ImageIdは自動インクリメントです)

とにかく私の質問は、ファイルがアップロードされるときに、データが上のテーブルに挿入されるだけでなく、上に挿入されたImageIdを取得して、下のImage_Questionテーブルに配置できるようにすることです。このような:

 ImageId         SessionId      QuestionId

    220             cat.png      1
    221             dog.png      4

私の質問は、Image TableからImageIdを取得し、それをImage_Questionテーブルに挿入するにはどうすればよいですか?以下は、mysqlを使用してImage_Questionテーブルにデータを挿入する私のコードです。画像テーブルからImageIdを取得できる必要があります。

 $imagequestionsql = "INSERT INTO Image_Question (ImageId, SessionId, QuestionId) 
        VALUES (?, ?, ?)";


        if (!$insertimagequestion = $mysqli->prepare($imagequestionsql)) {
          // Handle errors with prepare operation here
        }

    $sessid =  $_SESSION['id'] . ($_SESSION['initial_count'] > 1 ? $_SESSION['sessionCount'] : '');

    $insertimagequestion->bind_param("sss", $sessid, $_POST['numQuestion'][$i]);

            $insertimagequestion->execute();

            if ($insertimagequestion->errno) {
              // Handle query error here
            }

            $insertimagequestion->close();
4

1 に答える 1

0

最初の挿入後、mysqli_insert_idを使用して ID を取得できます。これは、Image_Question への 2 回目の挿入を行うときに使用します。

于 2012-07-20T00:00:50.493 に答える