私は何かエラーを探してみましたが、見つけられませんでした。私は提出しようとしたとき、私は "エラー接続"があると言いました。アップロードしたい画像が自分の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(テーブル "本"の主キー)の値は常にゼロです、それは増加しません。これをどうすれば解決できますか?
あなたの質問をエコーして、まずデータベース内でそのダイレクトを試してみてください。何か構文エラーがある場合は、 – Deep
クエリでデータベース名を使用することが簡単にわかります – selvan
**警告**:mysqliを使用する場合は、[パラメータ化されたクエリ](http://php.net/manual/クエリにユーザーデータを追加するには、[/ bind/**重大な[SQLインジェクションのバグ](http://bobby-tables.com/)を作成したため、文字列の補間または連結を使用してこれを実行しないでください。 ** '$ _POST'や' $ _GET'データを直接クエリに入れないでください。誰かがあなたのミスを悪用しようとすると、非常に危険です。 – tadman