Php 提交表单时未更新MySQL数据库
我正在使用HTML表单和PHP将数据上传到MySQL数据库。当我提交信息时,我上传的一个图像会被移动到一个特定的文件夹中(按照我预期的方式),但数据不会被上传到数据库中。 我现在添加了大部分代码,网站不允许我添加所有内容,我删除了一些在我看来与当前问题无关的行。因此,也许你会发现问题:Php 提交表单时未更新MySQL数据库,php,html,mysql,database,Php,Html,Mysql,Database,我正在使用HTML表单和PHP将数据上传到MySQL数据库。当我提交信息时,我上传的一个图像会被移动到一个特定的文件夹中(按照我预期的方式),但数据不会被上传到数据库中。 我现在添加了大部分代码,网站不允许我添加所有内容,我删除了一些在我看来与当前问题无关的行。因此,也许你会发现问题: <!DOCTYPE> <?php include("includes/db.php"); ?> <html> <head> <title>
<!DOCTYPE>
<?php
include("includes/db.php");
?>
<html>
<head>
<title>Inserting Product</title>
<script src="//tinymce.cachefly.net/4.1/tinymce.min.js"></script>
<script>
tinymce.init({selector:'textarea'});
</script>
</head>
<body bgcolor="grey">
<form action="insert_product.php" method="post" enctype="multipart/form-
data">
<table align="center" width="795" border="2" bgcolor="lime">
</tr>
<tr>
<td align="right"><b>Product Category:</b></td>
<td>
<select name="product_cat" >
<option>Select a Category</option>
<?php
$get_cats = "select * from categories";
$run_cats = mysqli_query($con, $get_cats);
while ($row_cats=mysqli_fetch_array($run_cats)){
$cat_id = $row_cats['cat_id'];
$cat_title = $row_cats['cat_title'];
echo "<option value='$cat_id'>$cat_title</option>";
}
?>
</select>
</td>
</tr>
<tr>
<td align="right"><b>Product Publisher:</b></td>
<td> <select name="product_dev">
<option>Select a Publisher</option>
<?php
$get_devs = "select * from developers";
$run_devs = mysqli_query($con, $get_devs);
while ($row_devs=mysqli_fetch_array($run_devs)){
$dev_id = $row_devs['dev_id'];
$dev_title = $row_devs['dev_title'];
echo "<option value='$dev_id'>$dev_title</option>";
}
?>
</select>
</td>
</tr>
<tr>
<td align="right"><b>Product Image:</b></td>
<td><input type="file" name="product_image" /></td>
</tr>
<tr>
<td align="right"><b>Product Price:</b></td>
<td><input type="text" name="product_price" required/></td>
</tr>
<tr>
<td align="right"><b>Product Keywords:</b></td>
<td><input type="text" name="product_keywords" size="50"
required/></td>
</tr>
<tr align="center">
<td colspan="7"><input type="submit" name="insert_post"
value="Insert Product Now"/></td>
</tr>
</table>
</form>
</body>
</html>
<?php
if(isset($_POST['insert_post'])){
$product_title = $_POST['product_title'];
$product_cat= $_POST['product_cat'];
$product_pub = $_POST['product_pub'];
$product_dev = $_POST['product_dev'];
$product_price = $_POST['product_price'];
$product_desc = $_POST['product_desc'];
$product_keywords = $_POST['product_keywords'];
$product_image = $_FILES['product_image']['name'];
$product_image_tmp = $_FILES['product_image']['tmp_name'];
move_uploaded_file($product_image_tmp,"product_images/$product_image");
$insert_product = "insert into products
(product_cat,product_pub,product_dev,
product_title,product_price,product_desc,product_image,
product_keywords) values ('$product_cat','$product_pub','$product_dev',
'$product_title','$product_price','$product_desc',
'$product_image','$product_keywords')";
$insert_pro = mysqli_query($con, $insert_product);
if($insert_pro){
echo "<script>alert('Product Has been inserted!')</script>";
echo "<script>window.open('index.php?insert_product','_self')
</script>";
}
}
?>
插入产品
init({选择器:'textarea'});
产品类别:
选择一个类别
你的问题似乎很好。
只需验证您的MySQLi连接
应该是这样的:
$con = mysqli_connect("HOST", "USERNAME", "PASSWORD", "DATABASE_NAME");
这里没有任何sql查询或请求。当你不请求任何东西时,为什么要期望sql数据库更新?我们甚至看不到你的代码连接到mySql服务器。如果您忽略了某些部分,请添加完整的代码。@Tomm我想他在$insert\u product
上有一个SQL
查询,但问题很少。首先,他在SQL
中直接使用他的变量非常糟糕。您需要注意使用准备好的语句,因为目前人们可以对您的项目进行SQL注入攻击。同时告诉我们您是否有任何错误检查控制台是否有任何错误。还要验证与数据库的连接是否正常。@Sand很好的调用,也许他还应该包括insert_产品文件代码。是的,这是主要的sql注入警报使用mysqli\u error()
,您有任何错误吗?在成功地将数据插入数据库后也移动上传的文件。这不是问题的答案。我已经在我的机器上执行了这个查询,它工作正常。此外,列的数据类型可能不支持发布的值。