繁体   English   中英

它没有在表中插入数据

[英]It is not inserting data into a Table

我下面有一些php代码,可将数据添加到2个表中,一个称为“图像表”,另一个称为“ Image_Question”表。 我面临的问题是,当它插入“ Image”表时,它没有将任何数据插入“ Image_Question”表中。

现在我知道PHP代码很好,因为它曾经能够毫无问题地将数据插入两个表中。

只有将索引和外键添加到表中后,此问题才开始发生。

以下是将数据插入两个表中的PHP代码:

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

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

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

//Don't 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();

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

$insert->close();

$lastID = $mysqli->insert_id;         

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

if (!$insertimagequestion = $mysqli->prepare($imagequestionsql)) { 
   // Handle errors with prepare operation here 
   echo "Prepare statement err imagequestion"; 
} 

$qnum = (int)$_POST['numimage'];

$insertimagequestion->bind_param("isi",$lastID, $sessid, $qnum); 

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

    $insertimagequestion->execute(); 

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

        $insertimagequestion->close(); 

这是图像表,图像_问题表以及问题表的SHOW CREATE TABLE的输出,因为图像_问题表与该表相关:

图片表:

CREATE TABLE `Image` (
 `ImageId` int(10) NOT NULL AUTO_INCREMENT,
 `ImageFile` varchar(250) NOT NULL,
 PRIMARY KEY (`ImageId`)
) ENGINE=InnoDB AUTO_INCREMENT=12 DEFAULT CHARSET=utf8

Image_Question表:

CREATE TABLE `Image_Question` (
 `ImageQuestionId` int(10) NOT NULL AUTO_INCREMENT,
 `ImageId` int(10) NOT NULL,
 `SessionId` varchar(10) NOT NULL,
 `QuestionId` int(5) NOT NULL,
 PRIMARY KEY (`ImageQuestionId`),
 KEY `FK_QuestionImage` (`ImageId`),
 KEY `questionId` (`QuestionId`),
 KEY `sessionId` (`SessionId`),
 CONSTRAINT `FK_Image_Question` FOREIGN KEY (`SessionId`) REFERENCES `Question` (`SessionId`) ON DELETE CASCADE,
 CONSTRAINT `FK_question` FOREIGN KEY (`QuestionId`) REFERENCES `Question` (`QuestionId`) ON DELETE CASCADE,
 CONSTRAINT `FK_QuestionImage` FOREIGN KEY (`ImageId`) REFERENCES `Image` (`ImageId`) ON DELETE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8

问题表:

CREATE TABLE `Question` (
 `SessionId` varchar(10) NOT NULL DEFAULT '',
 `QuestionId` int(5) NOT NULL,
 `QuestionContent` varchar(5000) NOT NULL,
 `NoofAnswers` int(2) NOT NULL,
 `AnswerId` int(10) NOT NULL AUTO_INCREMENT,
 `ReplyId` varchar(2) NOT NULL,
 `QuestionMarks` int(4) NOT NULL,
 `OptionId` varchar(3) NOT NULL,
 PRIMARY KEY (`SessionId`,`QuestionId`),
 KEY `FK_Option_Table` (`OptionId`),
 KEY `FK_IndividualQuestion` (`QuestionId`),
 KEY `FK_Reply` (`ReplyId`),
 KEY `FK_AnswerId` (`AnswerId`)
) ENGINE=InnoDB AUTO_INCREMENT=76 DEFAULT CHARSET=utf8
$img = 'ImageFiles/'.$_FILES['fileImage']['name'];

$insert->bind_param("s",$img);

用这个代替

$insert->bind_param("s",$img);

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM