数据未插入第二个表(MYSQLi)

use*_*925 9 php mysql database mysqli

我使用下面的代码上传文件并使用mysqli将数据插入"Image"表:

<?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;

//UPLOAD IMAGE FILE

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

$result = 1;

//INSERT INTO IMAGE DATABASE TABLE

$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();

//RETRIEVE IMAGEID FROM IMAGE TABLE

$lastID = $mysqli->insert_id;

//INSERT INTO IMAGE_QUESTION DATABASE TABLE

$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", $lastID, $sessid, $_POST['numQuestion'][$i]);

$insertimagequestion->execute();

//IF ANY ERROR WHILE INSERTING DATA INTO EITHER OF THE TABLES
if ($insert->errno) {
  // Handle query error here
}

$insert->close();

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

$insertimagequestion->close();

}

}
?>
Run Code Online (Sandbox Code Playgroud)

因此,例如,如果我将2个图像"cat.png"和"dog.png"插入"图像"数据库表中,它将像这样插入:

ImageId         ImageFile

220             cat.png
221             dog.png
Run Code Online (Sandbox Code Playgroud)

(ImageId是一个自动增量)

无论如何我想要做的是,当上传文件时,不仅数据被插入到上面的表格中,而且我还希望能够检索上面插入的ImageId并将其放在下面的"Image_Question"表中所以它会是这样的:

 ImageId         SessionId      QuestionId

    220             cat.png      1
    221             dog.png      4
Run Code Online (Sandbox Code Playgroud)

问题是它没有将任何数据插入第二个表"Image_Question",有没有人知道为什么它没有插入任何数据?php文件中没有错误.

要上传文件,用户在"QandATable.php"页面中选择ajax上传者的文件,当用户点击上传时,使用AJAX,它将进入imageupload.php页面并在那里进行上传.所以我遇到的问题是没有错误会出现,因为它们在单独的页面上.

Fre*_*lip 5

首先,保存从记录添加中获得的插入ID(在$ insert-> execute之后):

$lastID = $mysqli->insert_id;
Run Code Online (Sandbox Code Playgroud)

然后再引用$ lastID.

从下面提取我的评论:

$lastID = $insert->insert_id;
Run Code Online (Sandbox Code Playgroud)

我认为这与交换句柄名称有关 - $ mysqli,$ insert等.

希望我能正确地读出这个问题......