试图将变量加载到数据库中并且没有成功

时间:2017-01-14 09:54:58

标签: php mysqli insert

我有一小段代码,它将变量加载到数据库表中。

正如您所看到的,$insertResult未输出,因此在if语句中失败,如果所有内容都按计划进行,则不会:

它应该使用$topInsert查询表并将变量加载到表主题中。

$topName = $_POST['topName'];
                $topCat = $_POST['topCat'];
                $loggedUser = $_SESSION['loggedUser'];

                echo $topCat;

                $userID = "SELECT ID FROM users WHERE username = '$loggedUser'";
                $getID = mysqli_query($connect, $userID);
                $rowID = mysqli_fetch_array($getID);
                $userID = $rowID['ID'];
                echo $userID;
                $topInsert = "INSERT INTO topics(topicSubject, topicDate, topicCat, topicBy) VALUES('$topName', NULL, '$topCat', '$userID')";
                $insertResult = mysqli_query($connect, $topInsert);


                if(!$insertResult){

                    echo "<p style='margin-top: 75px;'>Error: Data could not be loaded to the database. Please try again.</p>";
                    $sqlRoll = "ROLLBACK;";
                    $rollResult = mysqli_query($connect, $sqlRoll);
                }

到目前为止,我非常确定表中的所有数据类型都与我尝试输入的内容正确对应,但无法弄清楚哪些数据类型无法正常工作。

我从昨天起就一直在努力解决这个问题,并且已经决定我需要一些帮助来确定哪些代码失败了。

如果我遗漏了任何内容,请随时要求发布更多信息。

我感谢任何回复。

2 个答案:

答案 0 :(得分:1)

设置topicDate列以允许PHPADMIN中的NULL值或不在查询中放置NULL

答案 1 :(得分:0)

试试这个。

$topName = $_POST['topName'];
$topCat = $_POST['topCat'];
$loggedUser = $_SESSION['loggedUser'];
echo $topCat;

//check if connection to database is succesfull first, then

$result = "SELECT ID FROM users WHERE username = '$loggedUser'";
if($result->num_rows >0){

while($row = $result->fetch_assoc()){
  $userID = $row["ID"];

}
}

$sql = "INSERT INTO topics(topicSubject, topicDate, topicCat, topicBy) VALUES('$topName', NULL, '$topCat', '$userID')";


    if(mysqli_query($con, $sql)){
        echo "Succesfully added"."<br>";
    }
    else{
        echo "Data could not be loaded"."<br>";

    }

    mysqli_close($connect);