【问题标题】:I get "mysqli_query(): Empty query" error and can't find the wrong line我收到“mysqli_query(): Empty query”错误并且找不到错误的行
【发布时间】:2016-06-15 07:44:57
【问题描述】:

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

感谢您的帮助:)

代码如下:

<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>";
  }
  ?>

【问题讨论】:

    标签: php database mysqli upload


    【解决方案1】:
    $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>";
    }
    

    【讨论】:

    • 谢谢你们,我不知道我为什么那样做...现在错误消失了,但上传也不起作用... $con 是正确的,数据库是正确的...没有错误,但没有上传:D
    【解决方案2】:
    $run_products = mysqli_query($con, $insert_products);
    $run_query = mysqli_query($con, $run_products);
    

    你为什么要执行第二个 mysqli_query 并运行第一个 mysqli_query 的结果?

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

    【讨论】:

      【解决方案3】:

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

      谢谢你的帮助:)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2022-12-07
        • 2018-12-09
        • 2019-05-10
        • 2021-09-26
        • 2018-10-19
        • 2021-04-23
        • 1970-01-01
        相关资源
        最近更新 更多