我有一个关于上传文本到数据库的问题。 最近我用PHP和MySQL创建了一个网站,运行正常,但是当我尝试添加一个产品时,它没有被添加,我查看代码中的错误,发现一切都是正确的,问题是产品详细信息输入框,我使用文本区域作为前端的输入字段,使用varchar-2000作为后端来保存详细信息,我是PHP新手,不知道PHP代码是否有问题。 当我尝试在数据库中编辑产品细节时,它得到了更新,但当我尝试在管理面板中编辑产品细节时,它没有得到更新,与添加产品页面也一样,当我在细节中输入较少的字时,它添加了产品,但当我写得较多时,它给出了错误。
下面是AddProducts.PHP的PHP代码
$name=$_POST['product_name'];
$details=$_POST['details'];
$catid=$_POST['selectcat'];
$status=$_POST['status'];
$filename=$_FILES['image']['name'];
$tmp=$_FILES['image']['tmp_name'];
$folder="./assets/images/products/".$filename;
move_uploaded_file($tmp,$folder);
$sql="INSERT INTO products(product_name,details,image,cat_id,status) VALUES('$name','$details','$filename', '$catid', '$status')";
if(mysqli_query($conn,$sql))
{
$success= "<p class='text-center font-weight-bold text-success text-uppercase'>Successfully Added</p>";
$_SESSION['sucupload'] = $success;
}
else
{
$success= '<p class="text-center font-weight-bold text-danger text-uppercase">Failed to Add</p>';
$_SESSION['sucupload'] = $success;
}
header('location:addproducts.php');
}
以下是AddProducts.php的HTML代码
<form method="POST" action="" class="py-3 addprodform" enctype="multipart/form-data">
<div class="form-group text-center w-100" style="position: relative;" >
<span class="img-div">
<div class="text-center img-placeholder" onClick="triggerClick()">
<h4>Select Product Image</h4>
</div>
<img src="./assets/images/addproduct.svg" width="150px;" height="150px" onClick="triggerClick()" id="profileDisplay">
</span>
<input type="file" name="image" onChange="displayImage(this)" id="productImage" class=" w-100 addprodinput" accept=".jpeg, .jpg, .webp, .svg, .png" required style="display: none;">
</div>
<div class="form-group">
<input class="w-100 addprodinput" type="text" name="product_name" required placeholder="Product Name" min="1">
</div>
<div class="form-group">
<textarea class="w-100 addprodinput" type="text" name="details" required placeholder="Product Details"></textarea>
</div>
<div class="form-group">
<select class="w-100 addprodinput" name="selectcat" required>
<option value="" disabled selected>Select Category</option>
<?php
$sql="SELECT * FROM categories";
$result=mysqli_query($conn, $sql);
while($row=mysqli_fetch_array($result))
{
echo '<option value="'.$row["cat_id"].'">'.$row["name"].'</option>';
}
?>
</select>
</div>
<div class="form-group">
<select class="w-100 addprodinput" name="status" required>
<option disabled selected>Select Product Status</option>
<option value="1">Active</option>
<option value="0">Inactive</option>
</select>
</div>
<div class="form-group text-center">
<a href="admin.php" class="btn btn-danger">CANCEL</a>
<input class="btn btn-primary" type="submit" name="addnow" value="ADD NOW">
</div>
</form>
我使用mysqli_real_escape_string解决了这个错误,方法是添加details变量$details=mysqli_real_escape_string($conn,$_post['details']);