#php #mysql #wampserver
#php #mysql #wampserver
Вопрос:
Я пытаюсь сохранить данные формы в базе данных с помощью WampServer.
Когда я нажимаю на кнопку отправки, она показывает мне эту ошибку:
"Error: Champ 'product_name' inconnu dans field list".
Я использую ту же работу для другой формы. Эта форма работает, но я не знаю, что с ней не так, пожалуйста, помогите мне
Мой код формы :
<form action="saddproduct.php" enctype="multipart/form-data" name="myForm" id="myForm"
method="post">
<table width="90%" border="1" cellpadding="6">
<tr>
<td width="20%">Product Name</td>
<td width="80%">
<label>
<input name="product_name" type="text" id="product_name" size="60" />
</label>
</td>
</tr>
<tr>
<td width="20%">Product Code</td>
<td width="80%">
<label>
<input name="product_code" type="text" id="product_code" size="60" />
</label>
</td>
</tr>
<tr>
<td width="20%">Product Availability</td>
<td width="80%">
<label>
<select name="availability" id="availability">
<option value=""></option>
<option value="in"> In Stock </option>
<option value="out"> Out Of Stock </option>
</select>
</label>
</td>
</tr>
<tr>
<td width="20%">Product Price</td>
<td width="80%">
<label>
Rs.
<input name="price" type="text" id="price" size="12" />
</label>
</td>
</tr>
<tr>
<td align="right">Category</td>
<td>
<label>
<select name="category" id="category">
<option value=""></option>
<option value="living"> Living Rooms </option>
<option value="bed"> Bed Rooms </option>
<option value="dining"> Dining Rooms </option>
</select>
</label>
</td>
</tr>
<tr>
<td align="right">Sub category</td>
<td>
<label>
<select name="subcategory" id="subcategory">
<option value=""></option>
<option value="lsofa"> Lining Sofa </option>
<option value="lchair"> Living Chair </option>
<option value="ltable"> Living Table </option>
<option value="bking"> King Beds </option>
<option value="bqueen"> Queen Beds </option>
<option value="dtable"> Dining Tables </option>
<option value="dchairs"> Dining Chairs </option>
<option value="hsale"> Sale Item For Home Page </option>
<option value="psale"> Sale Item For Sale Page </option>
</select>
</label>
</td>
</tr>
<tr>
<td width="20%">Product Detail</td>
<td width="80%">
<label>
<textarea name="details" id="details" cols="64" rows="5"> </textarea>
</label>
</td>
</tr>
<tr>
<td>amp;nbsp; </td>
<td width="80%">
<label>
<input type="submit" name="button" id="button" class="button" value="Add This
Product Now" />
</label>
</td>
</tr>
<tr>
<td width="20%">amp;nbsp;</td>
<td width="80%">amp;nbsp;</td>
</tr>
</table>
</form>
И моя страница PHP для обработки saddproduct.php которые выглядят как :
<?php
$con=mysqli_connect("localhost","root","03005225400","furniture");
// Check connection
if (mysqli_connect_errno()) {
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
// escape variables for security
$product_name = mysqli_real_escape_string($con, $_POST['product_name']);
$product_code = mysqli_real_escape_string($con, $_POST['product_code']);
$availability = mysqli_real_escape_string($con, $_POST['availability']);
$price = mysqli_real_escape_string($con, $_POST['price']);
$category = mysqli_real_escape_string($con, $_POST['category']);
$subcategory = mysqli_real_escape_string($con, $_POST['subcategory']);
$details = mysqli_real_escape_string($con, $_POST['details']);
$sql="INSERT INTO employee
(product_name , product_code, availability, price,
category, subcategory, details, date_added)
VALUES('$product_name','$product_code', '$availability',
'$price','$category','$subcategory','$details',now())"
or die (mysql_error());
if (!mysqli_query($con,$sql)) {
die('Error: ' . mysqli_error($con));
}
mysqli_close($con);
?>
Комментарии:
1. нет, нет, нет. удалите это
or die()
… вы просто устанавливаете там строку.2. В любом случае, я думаю, что сообщение об ошибке понятно, хотя и на французском языке. У вас нет поля, вызываемого
product_name
в этой таблице.3. Добавьте сообщение об ошибке в начало вашего файла (ов)
error_reporting(E_ALL); ini_set('display_errors', 1); mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
4. @user3694543 Как уже говорилось, у вас, скорее всего, нет вызываемого столбца
product_name
. Тем не менее, я вижу здесь пробелproduct_name ,
, попробуйте удалить его, чтобы бытьproduct_name,
, у меня есть догадка об этом. Также дляcategory ,
5. Это таблица
products
, ваш запрос — таблицаemployee
Ответ №1:
Я уверен, что если вы проверите свою структуру таблицы, вы не найдете ни одного столбца с именем product_name, по крайней мере, не с точным регистром.
Попробуйте проверить имена ваших столбцов, и если вы все еще не имеете понятия, попробуйте удалить имена столбцов и придерживаться порядка вашей структуры таблицы, помещая NULL в поля с содержимым по умолчанию, например, с автоинкрементом и временными метками.
Комментарии:
1. регистр не должен иметь значения
2. @nl-x вы правы, я перепутал mysql и pgsql
Ответ №2:
Простая опечатка. Таблица employee
должна быть products
Ответ №3:
Иногда эта ошибка типа (Ошибка: Champ ‘Yes’ в списке данных полей) возникает из-за использования (`) этих одинарных кавычек вместо использования (‘) этих кавычек в запросе ВСТАВКИ.