我收到 "mysqli_query(): Empty query" 错误并且无法找到错误的行

I get "mysqli_query(): Empty query" error and can't find the wrong line

大家好,我 运行 遇到了一个有趣的问题。我将此代码用于我的其他站点 运行良好。现在我只是更改变量等,我得到空查询错误。我逐行检查我的代码,但没有发现任何错误。

感谢任何帮助:)

代码如下:

<h1 class="text-center">Insert New Product</h1>
  <form method="POST" action="index.php?insert_product" enctype="multipart/form-data">
    <table id="form_table">

      <tr>
        <td class="valign">Title:</td>
        <td class=""><input type="text" name="product_title" required></td>
      </tr>

      <tr>
        <td class="valign">Price:</td>
        <td class=""><input type="text" name="product_price" required></td>
      </tr>

      <tr>
        <td class="valign">Category:</td>
        <td class="">
          <select name="product_cat" required>
            <option value="" disabled selected hidden>Please Choose...</option>
              <?php getCats_select(); ?>
          </select>
        </td>
      </tr>

      <tr>
        <td class="valign">Brand:</td>
        <td class="">
          <select name="product_brand" required>
            <option value="" disabled selected hidden>Please Choose...</option>
              <?php getBrands_select(); ?>
          </select>
        </td>
      </tr>

      <tr>
        <td class="valign">Keywords:</td>
        <td class=""><input type="text" name="product_keywords" required></td>
      </tr>

      <tr>
        <td class="valign">Image:</td>
        <td class=""><input type="file" name="product_image" required></td>
      </tr>

      <tr>
        <td class="valign">Description:</td>
        <td class=""><textarea name="product_desc"></textarea></td>
      </tr>

      <tr>
        <td class="valign">Specifications:</td>
        <td class=""><textarea name="product_spec"></textarea></td>
      </tr>

      <tr class="submit">
        <td></td>
        <td class="f-right"><input class="button" type="submit" name="submit" value="Upload"></td>
      </tr>
    </table>
  </form>

  <?php

  if (isset($_POST['submit'])) {
    $product_title     = $_POST['product_title'];
    $product_price     = $_POST['product_price'];
    $product_cat       = $_POST['product_cat'];
    $product_brand     = $_POST['product_brand'];
    $product_keywords  = $_POST['product_keywords'];
    $product_image     = $_FILES['product_image']['name'];
    $product_image_tmp = $_FILES['product_image']['tmp_name'];
    $product_desc      = addslashes($_POST['product_desc']);
    $product_spec      = addslashes($_POST['product_spec']);

    move_uploaded_file($product_image_tmp, "product_images/$product_image");

    $insert_products = "INSERT INTO products (product_cat, product_brand, product_title, product_price, product_desc, product_spec, product_image, product_keywords)
                            VALUES ('$product_cat', '$product_brand', '$product_title', '$product_price', '$product_desc', '$product_spec', '$product_image', '$product_keywords')";

    $run_products = mysqli_query($con, $insert_products);

    $run_query = mysqli_query($con, $run_products);
      echo "<script>alert('Product has been uploaded succesfully!')</script>";
      echo "<script>window.open('index.php?insert_product','_self')</script>";
  }
  ?>
$run_products = mysqli_query($con, $insert_products);
$run_query = mysqli_query($con, $run_products);

为什么要在第一个 mysqli_query 的结果中做第二个 mysqli_query 和 运行?

现在你有秒 mysqli_query 的错误,因为现在它正在处理第一个 mysqli_query 的结果。 mysqli_query 需要查询而不是查询

的结果
$run_products = mysqli_query($con, $insert_products);

$run_query = mysqli_query($con, $run_products);
  echo "<script>alert('Product has been uploaded succesfully!')</script>";
  echo "<script>window.open('index.php?insert_product','_self')</script>";

您正在将函数 mysqli_query 放入另一个 mysqli_query 函数中。这显然行不通,因为它会尝试 运行 由第一个查询的结果组成的查询。

替换为:

if(mysqli_query($con, $insert_products)){
  echo "<script>alert('Product has been uploaded succesfully!')</script>";
  echo "<script>window.open('index.php?insert_product','_self')</script>";
}

OOOOooookkay...我发现了一些东西。不知何故 img 上传是问题所在。如果我从 INSERT 行删除它,一切正常...

谢谢你的帮助:)