2017-07-08 41 views
-2

您的SQL语法错误;检查对应于您MariaDB的服务器版本使用附近的“正确的语法手册”,“1”,“7”,“123tw”)”在第2行你的SQL语法有错误;尝试提交表单时

我得到上述错误提交时形成。

<?php 
    session_start(); 
    $branch=$_SESSION['branch']; 
    include('../dist/includes/dbcon.php'); 
     $name = $_POST['prod_name']; 
     $price = $_POST['prod_price']; 
     $desc = $_POST['prod_desc']; 
     $supplier = $_POST['supplier']; 
     $reorder = $_POST['reorder']; 
     $category = $_POST['category']; 
     //$quantity = $_POST['prod_qty']; 
     $serialn = $_POST['serialn']; 

     $query2=mysqli_query($con,"select * from product where prod_name='$name' and branch_id='$branch'")or die(mysqli_error($con)); 
      $count=mysqli_num_rows($query2); 

      if ($count>0) 
      { 
       echo "<script type='text/javascript'>alert('Product already exist!');</script>"; 
       echo "<script>document.location='product.php'</script>"; 
      } 
      else 
      { 

       $pic = $_FILES["image"]["name"]; 
       if ($pic=="") 
       { 
        $pic="default.gif"; 
       } 
       else 
       { 
        $pic = $_FILES["image"]["name"]; 
        $type = $_FILES["image"]["type"]; 
        $size = $_FILES["image"]["size"]; 
        $temp = $_FILES["image"]["tmp_name"]; 
        $error = $_FILES["image"]["error"]; 

        if ($error > 0) 
        { 
         die("Error uploading file! Code $error."); 
         } 
        else{ 
         if($size > 100000000000) //conditions for the file 
          { 
          die("Format is not allowed or file size is too big!"); 
          } 
        else 
          { 
         move_uploaded_file($temp, "../dist/uploads/".$pic); 
          } 
         } 
       } 

       mysqli_query($con,"INSERT INTO product(prod_name,prod_price,prod_desc,prod_pic,cat_id,reorder,supplier_id,branch_id,serialn) 
       VALUES('$name','$price','$desc','$pic','$category', $reorder','$supplier','$branch','$serialn')")or die(mysqli_error($con)); 

       echo "<script type='text/javascript'>alert('Successfully added new product!');</script>"; 
          echo "<script>document.location='product.php'</script>"; 
      } 
    ?> 
+1

您是大开[SQL注入(http://php.net/manual/ en/security.database.sql-injection.php),并且应该真正使用[Prepared Statements](准备好的语句)(http://php.net/manual/en/mysqli.quickstart.prepared-statements.php),而不是连接你的查询。特别是因为你没有逃避用户输入! –

+0

忘掉这个问题,首先用Prepared Statements重构你的代码(这将改变你的查询)并且你的问题很可能在这个过程中被解决。不要浪费时间调试你最近需要更新的不安全的代码。 –

回答

0

看起来你错过了$reorder'之前的单引号?

+0

哦。 XD hehe。 okay2。谢谢youuu:D –

+0

注意别人对SQL注入问题和其他问题的评论! –

0

您的SQL INSERT查询出错。

mysqli_query($con,"INSERT INTO product(prod_name,prod_price,prod_desc,prod_pic,cat_id,reorder,supplier_id,branch_id,serialn) 
VALUES('$name','$price','$desc','$pic','$category','$reorder','$supplier','$branch','$serialn')")or die(mysqli_error($con)) 

现在就来试试..

+1

这不会改变任何东西。你知道你可以在双引号字符串中回显变量,对吧?如果查看失败的查询,则INSERT进一步下降,而不是上面的。 –

+0

edited ..错误是在插入查询$重新排序。你把$ reorder'而不是'$ reorder' – GYaN

+1

另一件事,你应该不_连接查询。你应该使用Prepared Statements。至少如果你不想受到SQL注入的影响。 –

0

你已经错过了'$reorder之前尝试此代码

mysqli_query($con,"INSERT INTO product(prod_name, prod_price, prod_desc ,prod_pic, cat_id, reorder, supplier_id, branch_id, serialn) VALUES ('$name', '$price', '$desc', '$pic', '$category', '$reorder', '$supplier', '$branch', '$serialn')")or die(mysqli_error($con))or die(mysqli_error($con));