简体   繁体   中英

MySqli INSERT not working, no error

My code seems to be correct. A form is displayed and then when the submit button is clicked this code is supposed to execute. If the article exist it ends and says so but it is not inserting into the database or giving an error or showing any printout if the article does not exist.

EDIT: provided whole form

 <?php if(!isset($_POST['submit'])) { print ' <div class="container-fluid ui-widget"> <form class="form-horizontal" method="post" action="inputform.php" onsubmit="return confirm("Is all of your data correct?");"> <fieldset> <!-- Article Input --> <legend>Article Input</legend> <!-- Journal Radio Buttons (value is journal ISSN)--> <div class="form-group"> <label class="col-md-4 control-label" for="journal_radio">Journal</label> <div class="col-md-4"> <div class="radio"> <label for="journal_radio-0"> <input type="radio" name="journal_radio" id="journal_radio-0" value="2162-9730" checked="checked"> MIS Quarterly </label> </div> <div class="radio"> <label for="journal_radio-1"> <input type="radio" name="journal_radio" id="journal_radio-1" value="1047-7047"> Information Systems Research </label> </div> <div class="radio"> <label for="journal_radio-2"> <input type="radio" name="journal_radio" id="journal_radio-2" value="0742-1222"> Journal of Management Information Systems </label> </div> <div class="radio"> <label for="journal_radio-3"> <input type="radio" name="journal_radio" id="journal_radio-3" value="1536-9323"> Journal of the Association for Information Systems </label> </div> <div class="radio"> <label for="journal_radio-4"> <input type="radio" name="journal_radio" id="journal_radio-4" value="1476-9344"> European Journal of Information Systems </label> </div> <div class="radio"> <label for="journal_radio-5"> <input type="radio" name="journal_radio" id="journal_radio-5" value="1365-2575"> Information Systems Journal </label> </div> <div class="radio"> <label for="journal_radio-6"> <input type="radio" name="journal_radio" id="journal_radio-6" value="0963-8687"> Journal of Strategic Information Systems </label> </div> <div class="radio"> <label for="journal_radio-7"> <input type="radio" name="journal_radio" id="journal_radio-7" value="0268-3962"> Journal of Information Technology </label> </div> <div class="radio"> <label for="journal_radio-8"> <input type="radio" name="journal_radio" id="journal_radio-8" value="0167-9236"> Decision Support Systems </label> </div> <div class="radio"> <label for="journal_radio-9"> <input type="radio" name="journal_radio" id="journal_radio-9" value="0378-7206"> Information and Management </label> </div> </div> </div> <!-- Article Name Input--> <div class="form-group"> <label class="col-md-4 control-label" for="article_name">Article Name:</label> <div class="col-md-5"> <input id="article_name" name="article_name" type="text" placeholder="Article Name" class="form-control input-md" required=""> </div> </div> <!-- Author 1--> <div class="form-group"> <label class="col-md-4 control-label" for="author1_name">Author 1:</label> <div class="col-md-4"> <input id="author1_name" name="author1_name" type="text" placeholder="Author Name" class="form-control input-md" required=""> </div> </div> <!-- Author 1 University --> <div class="form-group"> <label class="col-md-4 control-label" for="author1_university">University:</label> <div class="col-md-4"> <input id="author1_university" name="author1_university" type="text" placeholder="Author University" class="form-control input-md" required=""> </div> </div> <!-- Author 2--> <div class="form-group"> <label class="col-md-4 control-label" for="author2_name">Author 2:</label> <div class="col-md-4"> <input id="author2_name" name="author2_name" type="text" placeholder="" class="form-control input-md"> </div> </div> <!-- Author 2 University--> <div class="form-group"> <label class="col-md-4 control-label" for="author2_university">University:</label> <div class="col-md-4"> <input id="author2_university" name="author2_university" type="text" placeholder="" class="form-control input-md"> </div> </div> <!-- Author 3--> <div class="form-group"> <label class="col-md-4 control-label" for="author3_name">Author 3:</label> <div class="col-md-4"> <input id="author3_name" name="author3_name" type="text" placeholder="" class="form-control input-md"> </div> </div> <!-- Author 3 University--> <div class="form-group"> <label class="col-md-4 control-label" for="author3_university">University:</label> <div class="col-md-4"> <input id="author3_university" name="author3_university" type="text" placeholder="" class="form-control input-md"> </div> </div> <!-- Author 4--> <div class="form-group"> <label class="col-md-4 control-label" for="author4_name">Author 4: </label> <div class="col-md-4"> <input id="author4_name" name="author4_name" type="text" placeholder="" class="form-control input-md"> </div> </div> <!-- Author 4 University--> <div class="form-group"> <label class="col-md-4 control-label" for="author4_university">University:</label> <div class="col-md-4"> <input id="author4_university" name="author4_university" type="text" placeholder="" class="form-control input-md"> </div> </div> <!-- Author 5--> <div class="form-group"> <label class="col-md-4 control-label" for="author5_name">Author 5:</label> <div class="col-md-4"> <input id="author5_name" name="author5_name" type="text" placeholder="" class="form-control input-md"> </div> </div> <!-- Author 5 University--> <div class="form-group"> <label class="col-md-4 control-label" for="author5_university">University:</label> <div class="col-md-4"> <input id="author5_university" name="author5_university" type="text" placeholder="" class="form-control input-md"> </div> </div> <!-- Author 6--> <div class="form-group"> <label class="col-md-4 control-label" for="author6_name">Author 6:</label> <div class="col-md-4"> <input id="author6_name" name="author6_name" type="text" placeholder="" class="form-control input-md"> </div> </div> <!-- Author 6 University--> <div class="form-group"> <label class="col-md-4 control-label" for="author6_university">University:</label> <div class="col-md-4"> <input id="author6_university" name="author6_university" type="text" placeholder="" class="form-control input-md"> </div> </div> <!-- Select Year Published --> <div class="form-group"> <label class="col-md-4 control-label" for="year">Year Published</label> <div class="col-md-4"> <select id="year" name="year" class="form-control"> <option value="2010">2010</option> <option value="2011">2011</option> <option value="2012">2012</option> <option value="2013">2013</option> <option value="2014">2014</option> <option value="2015">2015</option> </select> </div> </div> <!-- Is Security Checkbox --> <div class="form-group"> <label class="col-md-4 control-label" for="is_security"></label> <div class="col-md-4"> <label class="checkbox-inline" for="is_security-0"> <input type="checkbox" name="is_security" id="is_security-0" value="1"> Security Related </label> </div> </div> <!-- Submit Form Button --> <div class="form-group"> <div class="col-md-4 control-label"> <button id="submit" name="submit" class="btn btn-primary">Submit</button> </div> </div> </fieldset> </form> </div>'; } if(isset($_POST['submit'])){ $dbHost = "localhost"; $dbUsername = "admin"; $dbPassword = ""; $dbName = "webdb"; // Create connection $db = new mysqli($dbHost, $dbUsername, $dbPassword, $dbName); // Check connection if ($db->connect_error) { die("Connection failed: " . $db->connect_error); } $journal = $_POST['journal_radio']; $article_name = $_POST['article_name']; $author1 = $_POST['author1_name']; $author1uni = $_POST['author1_university']; $author2 = $_POST['author2_name']; $author2uni = $_POST['author2_university']; $author3 = $_POST['author3_name']; $author3uni = $_POST['author3_university']; $author4 = $_POST['author4_name']; $author4uni = $_POST['author4_university']; $author5 = $_POST['author5_name']; $author5uni = $_POST['author5_university']; $author6 = $_POST['author6_name']; $author6uni = $_POST['author6_university']; $year = $_POST['year']; $security = $_POST['is_security']; //check if article exist $articlequery = $db->query("SELECT Article_Title FROM Articles WHERE Article_Title = '$article_name'"); if($articlequery->num_rows != 0) { print 'Article Already Exists'; } else { //insert if doesn't exit $articleinsert = "INSERT INTO Articles (ISSN, Year_Published, Is_Security, Article_Title) VALUES ('$journal',$year,$security,'$article_name')"; if ($db->query($articleinsert) === TRUE) { echo "<script type= 'text/javascript'>alert('New record created successfully');</script>"; } else { echo "<script type= 'text/javascript'>alert('Error: " . $articleinsert . "<br>" . $db->error."');</script>"; } } $conn->close(); } ?> 

I've narrowed it down to this area but can't seem to find the issue...

$articleinsert = "INSERT INTO Articles (ISSN, Year_Published, Is_Security, Article_Title)
    VALUES ('$journal',$year,$security,'$article_name')";

    if ($db->query($articleinsert) === TRUE) {
    echo "<script type= 'text/javascript'>alert('New record created successfully');</script>";
    } else {
    echo "<script type= 'text/javascript'>alert('Error: " . $articleinsert . "<br>" . $db->error."');</script>";
    }

我认为

$conn->close(); should be $db->close();

INSERT Statement requires single quotes around all values/variables. Placed them around $journal and $year and the form was fully functional.

Thanks to @Mihai for the answer

Your Query

 INSERT INTO Articles (ISSN, Year_Published, Is_Security, Article_Title)
        VALUES ('$journal',$year,$security,'$article_name')

Change Into

INSERT INTO Articles (ISSN, Year_Published, Is_Security, Article_Title)
    VALUES ('".$journal."','".$year."','".$security."','".$article_name."')

I hope it will help you. Suppose it's also not working then, Please check your input data's one by one. Maybe it's wrong. And also check your input data type (varchar length) in the database.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

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