簡體   English   中英

我的PHP表單不會將數據插入MySQL數據庫

[英]My PHP form wont insert data to MySQL Database

我試圖查找任何錯誤,但找不到。 當我嘗試提交時,它說我有“錯誤連接”。 即使我要上傳的圖像在我計算機的指定文件夾中也可以上傳,但沒有數據插入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>";
                }

            }
        ?>

編輯:我認為我發現了問題。 當我在數據庫中輸入查詢時,出現錯誤1062:鍵“ PRIMARY”的條目“ 0”重復。 因此,每次我添加另一個輸入時,books_id(表“ books”的主鍵)的值始終為零,並且不會增加。 我該如何解決?

在上面的代碼中,將表單操作重定向到insert_book.php,最好檢查該頁面中的mysql連接(insert_book.php)。 希望這個能對您有所幫助

嘗試檢查includes / db.php文件中的連接設置,或者您將表單重定向到insert_book.php,以檢查該文件中是否可用的天氣連接。

在上面的代碼中,從表單中刪除操作,否則在insert_book.php中放入php代碼,因為表單操作重定向到insert_book.php。

編輯:我認為我發現了問題。 當我在數據庫中輸入查詢時,出現錯誤1062:鍵“ PRIMARY”的條目“ 0”重復。 因此,每次我添加另一個輸入時,books_id(表“ books”的主鍵)的值始終為零,並且不會增加。 我該如何解決?

為主鍵books_id添加自動增量

就像是

ALTER TABLE books MODIFY books_id INTEGER NOT NULL AUTO_INCREMENT;

編輯:我認為我發現了問題。 當我在數據庫中輸入查詢時,出現錯誤1062:鍵“ PRIMARY”的條目“ 0”重復。 因此,每次我添加另一個輸入時,books_id(表“ books”的主鍵)的值始終為零,並且不會增加。 我該如何解決?

檢查您的表ID(數據類型)是否設置為auto_increment。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM