![](/img/trans.png)
[英]My PHP file wont insert HTML data into a MySql database table
[英]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.