我的PHP表单不会将数据插入MySQL数据库

时间:2016-12-02 05:57:26

标签: php html mysql

我试图查找任何错误但我无法找到它。当我试图提交时,它说我有"错误连接"。即使我想要上传的图像在我的电脑中的指定文件夹中上传得很好但是没有数据插入到phpmyadmin的mysql数据库中

请帮我看一下这段代码中的错误。谢谢!

这是我的db.php

<?php

$con= mysqli_connect("localhost","root","","bookmarket");

?>

这是我的代码

<?php

            include("includes/db.php");

         ?>

            <html>
                <head>
                    <title>Inserting Books</title>

                <script src="//cdn.tinymce.com/4/tinymce.min.js"></script>
                <script>tinymce.init({ selector:'textarea' });</script>    


                </head>

            <body bgcolor="skyblue">
                <form action="insert_book.php" method="post" enctype="multipart/form-data">

                    <table align="center" width="700" border="2" bgcolor="orange">

                        <tr align="center">
                            <td colspan="7"><h2>Insert New Post Here</h2></td>
                        </tr>

                        <tr>
                            <td align="right"><b>Book Title:</b></td>
                            <td><input type="text" name="book_title" size="60" required/></td>
                        </tr>




                        <tr>
                            <td align="right"><b>Book Subject:</b></td>
                            <td>
                            <select name="book_subject" required>
                                <option>Select a subject</option>
                            <?php    
                $get_subjects="select * from subjects";

                $run_subjects=mysqli_query($con,$get_subjects);

                while($row_subjects=mysqli_fetch_array($run_subjects)){

                $subjects_id=$row_subjects['subjects_id'];
                $subjects_title=$row_subjects['subjects_title'];

                echo "<option value='$subjects_id'>$subjects_title</option>";
                }
                                ?>    
                            </select>
                            </td>
                        </tr>


                        <tr>
                            <td align="right"><b>Book Course Type:</b></td>
                            <td>
                            <select name="book_course_type" required>
                                <option>Select a course type</option>
                            <?php    
                $get_book_course_type="select * from course_type";

                $run_book_course_type=mysqli_query($con,$get_book_course_type);

                while($row_course_type=mysqli_fetch_array($run_book_course_type)){

                $course_type_id=$row_course_type['course_type_id'];
                $course_type_title=$row_course_type['course_type_title'];

                echo "<option value='$course_type_id'>$course_type_title</option>";
                }
                                ?>    
                            </select>
                            </td>
                        </tr>



                        <tr>
                            <td align="right"><b>Book Author:</b></td>
                            <td><input type="text" name="book_author" required/></td>
                        </tr>




                        <tr>
                            <td align="right"><b>Book Image:</b></td>
                            <td><input type="file" name="book_image" required/></td>
                        </tr>


                        <tr>
                            <td align="right"><b>Book Price:</b></td>
                            <td><input type="text" name="book_price" required/></td>
                        </tr>

                        <tr>
                            <td align="right"><b>Book Description:</b></td>
                            <td><textarea name="book_desc" cols="20" rows="10"></textarea></td>
                        </tr>

                        <tr>
                            <td align="right"><b>Book keywords:</b></td>
                            <td><input type="text" name="book_keywords" required/></td>
                        </tr>






                        <tr align="center">
                            <td colspan="7"><input type="submit" name="insert_post" value="Insert Book Now"/></td>
                        </tr>


                    </table>


                </form>

            </body>
            </html>

        <?php

            if(isset($_POST['insert_post'])){

                //getting the text data from the fields
                $book_title=$_POST['book_title'];
                $book_subject=$_POST['book_subject'];
              $book_course_type=$_POST['book_course_type'];
                $book_author=$_POST['book_author'];
                $book_price=$_POST['book_price'];
                $book_desc=$_POST['book_desc'];
                $book_keywords=$_POST['book_keywords'];

                //getting the image from the field
                $book_image= $_FILES['book_image']['name'];
                $book_image_tmp= $_FILES['book_image']['tmp_name'];

              move_uploaded_file($book_image_tmp,"book_images/$book_image");

              $insert_book = "insert into books(books_course_type,books_subject,books_title,books_price,books_desc,books_author,books_image,books_keywords) values('$book_course_type','$book_subject','$book_title','$book_price','$book_desc','$book_author','$book_image','$book_keywords')";

              $insert_pro= mysqli_query($con,$insert_book)
                  or die ('Error connecting');

              if($insert_pro){

              echo "<script>alert('Book Has Been Inserted!')</script>";
              echo "<script>window.open('insert_book.php','_self')</script>";
                }

            }
        ?>

编辑:我认为我发现了问题。当我在数据库中输入查询时,我得到了ERROR 1062:重复输入&#39; 0&#39;关键&#39; PRIMARY&#39;。所以每次我添加另一个输入时,books_id的值(表格的主键#34;书籍和#34;)总是为零,它不会增加。我该如何解决这个问题?

5 个答案:

答案 0 :(得分:1)

在上面的代码中,表单操作被重定向到insert_book.php,最好检查该页面中是否存在mysql连接(insert_book.php)。 希望这会对你有所帮助

答案 1 :(得分:1)

尝试检查includes / db.php文件中的连接设置,或者将表单重定向到insert_book.php检查该文件中是否有可用的天气连接。

答案 2 :(得分:1)

在上面的代码中删除表单中的操作,否则将php代码放入insert_book.php,因为表单操作重定向到insert_book.php。

答案 3 :(得分:0)

  编辑:我想我发现了问题。当我在中输入查询时   数据库我得到ERROR 1062:重复输入&#39; 0&#39;关键&#39; PRIMARY&#39;。所以   每次我添加另一个输入时,books_id的值(主键为   table&#34; books&#34;)总是零,它不会增加。我该如何解决?   此?

为主键books_id添加自动增量

这样的东西
ALTER TABLE books MODIFY books_id INTEGER NOT NULL AUTO_INCREMENT;

答案 4 :(得分:0)

  编辑:我想我发现了问题。当我在数据库中输入查询时,我得到了ERROR 1062:对于'PRIMARY'键重复输入'0'。所以每次我添加另一个输入时,books_id(表“books”的主键)的值总是为零,它不会增加。我该如何解决这个问题?

检查表ID(数据类型)是否设置为auto_increment。