提问者:小点点

未在数据库中保存大文本[重复]


我有一个关于上传文本到数据库的问题。 最近我用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>

共1个答案

匿名用户

我使用mysqli_real_escape_string解决了这个错误,方法是添加details变量$details=mysqli_real_escape_string($conn,$_post['details']);