Продукт не добавляется в базу данных

#javascript #php #mysql #ajax #e-commerce

#javascript #php #mysql #ajax #электронная коммерция

Вопрос:

Я столкнулся с проблемой при добавлении данных из панели администратора в базу данных.Я новичок в php, и я сомневаюсь, что в моем php-коде есть какие-то проблемы. Особенно при добавлении изображения в базу данных.Я много пробовал, но не могу найти решение.

Вот мой php-код:

 public function addProduct($product_name,
                            $brand_id,
                            $category_id,
                            $product_desc,
                            $product_qty,
                            $product_price,
                            $file){

    $fileName = $file['name'];
    $fileNameAr= explode(".", $fileName);
    $extension = end($fileNameAr);
    $ext = strtolower($extension);

    if ($ext == "jpg" || $ext == "jpeg" || $ext == "png") {
        
        //print_r($file['size']);

        if ($file['size'] > (1024 * 2)) {
            
            $uniqueImageName = time()."_".$file['name'];
            if (move_uploaded_file($file['tmp_name'], $_SERVER['DOCUMENT_ROOT']."/big_store/web/images/".$uniqueImageName)) {

                $uname= $_SESSION['user'];
                
                $q = $this->con->query("INSERT INTO `products`(`product_cat`, `product_brand`, `product_title`, `product_qty`, `product_price`, `product_desc`, `product_image`, `vendor_name`) VALUES ('$category_id', '$brand_id', '$product_name', '$product_qty', '$product_price', '$product_desc', '$uniqueImageName', '$uname')");

                if ($q) {
                    return ['status'=> 202, 'message'=> 'Product Added Successfully..!'];
                }else{
                    return ['status'=> 303, 'message'=> 'Failed to run query'];
                }

            }else{
                return ['status'=> 303, 'message'=> 'Failed to upload image'];
            }

        }else{
            return ['status'=> 303, 'message'=> 'Large Image ,Max Size allowed 2MB'];
        }

    }else{
        return ['status'=> 303, 'message'=> 'Invalid Image Format [Valid Formats : jpg, jpeg, png]'];
    }

}
 

Вот мой javascript:

 getProducts();

$(".add-product").on("click", function(){

    $.ajax({

        url : './classes/Products.php',
        method : 'POST',
        data : new FormData($("#add-product-form")[0]),
        contentType : false,
        cache : false,
        processData : false,
        success : function(response){
            console.log(response);
            var resp = $.parseJSON(JSON.stringify(response));
            if (resp.status == 202) {
                $("#add-product-form").trigger("reset");
                $("#add_product_modal").modal('hide');
                getProducts();
            }else if(resp.status == 303){
                alert(resp.message);
            }
        }

    });

});
 

Вот моя html-форма, которую я создал для добавления в базу данных.

 <div class="modal fade" id="add_product_modal" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
  <div class="modal-dialog" role="document">
    <div class="modal-content">
      <div class="modal-header">
        <h5 class="modal-title" id="exampleModalLabel">Add Product</h5>
        <button type="button" class="close" data-dismiss="modal" aria-label="Close">
          <span aria-hidden="true">amp;times;</span>
        </button>
      </div>
      <div class="modal-body">
        <form id="add-product-form" enctype="multipart/form-data">
            <div class="row">
                <div class="col-12">
                    <div class="form-group">
                        <label>Product Name</label>
                        <input type="text" name="product_name" class="form-control" placeholder="Enter Product Name">
                    </div>
                </div>
                <div class="col-12">
                    <div class="form-group">
                        <label>Brand Name</label>
                        <select class="form-control brand_list" name="brand_id">
                            <option value="">Select Brand</option>
                        </select>
                    </div>
                </div>
                <div class="col-12">
                    <div class="form-group">
                        <label>Category Name</label>
                        <select class="form-control category_list" name="category_id">
                            <option value="">Select Category</option>
                        </select>
                    </div>
                </div>
                <div class="col-12">
                    <div class="form-group">
                        <label>Product Description</label>
                        <textarea class="form-control" name="product_desc" placeholder="Enter product desc"></textarea>
                    </div>
                </div>
            <div class="col-12">
              <div class="form-group">
                <label>Product Qty</label>
                <input type="number" name="product_qty" class="form-control" placeholder="Enter Product Quantity">
              </div>
            </div>
                <div class="col-12">
                    <div class="form-group">
                        <label>Product Price (Rs)</label>
                        <input type="number" name="product_price" class="form-control" placeholder="Enter Product Price">
                    </div>
                </div>
                <div class="col-12">
                    <div class="form-group">
                        <label>Product Image <small>(format: jpg, jpeg, png)</small></label>
                        <input type="file" name="product_image" class="form-control">
                    </div>
                </div>
                <input type="hidden" name="add_product" value="1">
                <div class="col-12">
                    <button type="button" class="btn btn-primary add-product">Add Product</button>
                </div>
            </div>
            
        </form>
      </div>
    </div>
  </div>
</div>
 

Комментарии:

1. Ваш вопрос, вероятно, слишком расплывчатый, чтобы на него можно было ответить. Вы «столкнулись с проблемой», потому что у вас «какая-то проблема», «особенно» при добавлении изображений. Хотя в вашем вопросе много кода, нигде нет вызова функции PHP addProduct() . Вы проверили обработку загрузки файлов ?

2. См. О внедрении sql и важности подготовленных и связанных запросов: phpdelusions.net/pdo