2016-12-02 20 views
2

私は何かエラーを探してみましたが、見つけられませんでした。私は提出しようとしたとき、私は "エラー接続"があると言いました。アップロードしたい画像が自分のPCの指定されたフォルダにアップロードされているにもかかわらず、phpmyadminのmysqlデータベースにデータが挿入されていません私のPHPフォームはMySQLデータベースにデータを挿入しません

このコードでエラーを見つけてください。ありがとうございました!

これは、これは私のコード

<?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>"; 
       } 

      } 
     ?> 

EDITである私をdb.php

<?php 

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

?> 

です:私は問題を発見したと思います。データベースにクエリを入力すると、私はエラー1062:キー 'PRIMARY'の重複エントリ '0'を取得しました。だから私は別の入力を追加するたびに、books_id(テーブル "本"の主キー)の値は常にゼロです、それは増加しません。これをどうすれば解決できますか?

+1

あなたの質問をエコーし​​て、まずデータベース内でそのダイレクトを試してみてください。何か構文エラーがある場合は、 – Deep

+0

クエリでデータベース名を使用することが簡単にわかります – selvan

+0

**警告**:mysqliを使用する場合は、[パラメータ化されたクエリ](http://php.net/manual/クエリにユーザーデータを追加するには、[/ bind/**重大な[SQLインジェクションのバグ](http://bobby-tables.com/)を作成したため、文字列の補間または連結を使用してこれを実行しないでください。 ** '$ _POST'や' $ _GET'データを直接クエリに入れないでください。誰かがあなたのミスを悪用しようとすると、非常に危険です。 – tadman

答えて

1

上記のコードでは、フォームのアクションはinsert_book.phpにリダイレクトされます。そのページ(insert_book.php)にmysql接続があるかどうかを確認することをお勧めします。これは上記のコードの削除で..あなたに

+0

これを行う方法を教えてもらえますか?ありがとうございました! – Kayzerrex

+0

あなたはinsert_book.phpにdb.phpを含めましたか? –

+0

あなたはdb.phpを提供できますか? –

1

てみてくださいを助ける 希望formアクションはinsert_book.phpにリダイレクトするため、フォームからのアクションはPHPコードをinsert_book.phpに入れます。

+0

これを行う方法を教えてもらえますか?私はまだこれで新しいです – Kayzerrex

+0

@Kayzerrexあなたがdb.phpファイルに書かれていることを教えてください。あなたが「エラー接続」をしているということは、単にmysqlへの接続が正しく行われていないことを意味します。 –

+0

私はdb.phpコードを追加しました – Kayzerrex

1

を/をdb.phpファイルを含むか、またはあなたがそのファイルまたは利用できない天候の接続を確認insert_book.phpするフォームをリダイレクトしている中で、接続設定を確認する

0

EDIT:問題が見つかりました。 データベースにクエリを入力すると、エラー1062:キー 'PRIMARY'の重複エントリ '0'が表示されます。だから 私は別の入力を追加するたびにbooks_id( テーブルの "book"の主キー)の値は常に0ですが、それは増加しません。 これを解決するにはどうすればよいですか?

主キーbooks_idため

ALTER TABLE books MODIFY books_id INTEGER NOT NULL AUTO_INCREMENT; 
0

EDITなどの

何か自動インクリメントを追加します。私は、問題を見つけたと思うが。データベースにクエリを入力すると、私はエラー1062:キー 'PRIMARY'の重複エントリ '0'を取得しました。だから私は別の入力を追加するたびに、books_id(テーブル "本"の主キー)の値は常にゼロです、それは増加しません。これをどうすれば解決できますか?

auto_incrementに設定されている場合は、テーブルID(データ型)を確認してください。

関連する問題