PHP INSERT INTO MySQL无法正常工作,没有给出错误

问题描述:

I am currently trying to execute an INSERT INTO when a search button is clicked. Eventually I'd like to submit the search term into the database, however I'm currently just trying to submit a simple string to ensure the initial INSERT INTO works correctly, which it currently doesn't.

I have the following:

<form name="form1" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
    <input type="search" name="search" id="results" placeholder="Enter search">
    <input type="submit" name="submit" class="frstBtn" value="searchterm"><br>
</form>

<?php
        $searchterm = "";
    ?>
<?php
        if(isset($_POST['submit']))
        {
            $sql = "INSERT INTO tableName (variableName) VALUES ('test')";
            $results = mysqli_query($conn,$sql) or die(mysqli_error());
        }
        ?>

The latter php function, search, works perfectly fine, but the former function including the INSERT INTO does not.

Here is the table itself in phpmyadmin.

I have successfully manually copied and pasted the actual INSERT INTO statement into the actual database and it has worked fine, so I know the issue isn't with the statement. Any help is much appreciated. Thanks.

Since the searchTerm column is defined as PRIMARY, I’m ready to bet that you are trying to insert the same value twice and you don't have enabled the error_reporting. To find out exactly what the problem is, first of all enable all errors by adding the following at the beginning of your script:

ini_set('error_reporting', -1);
ini_set('display_errors', 1);

Also, note that you must use mysqli_error($conn) instead of mysqli_error().

By the way, to ignore errors when inserting unique values, use:

INSERT IGNORE INTO searchHistory(searchTerm) VALUES ('test')