插入MySQL表PHP

Jak*_*Ols 4 php mysql sql syntax-error sql-insert

我在制作一个简单的表单以将数据插入MySQL表时遇到了一些麻烦.我一直收到这个SQL错误:

"错误:您的SQL语法中有错误;请查看与您的MySQL服务器版本对应的手册,以便在'stock('ItemNumber','Stock')附近使用正确的语法VALUES('#4','3' ')'在第1行"

我的表格HTML是:

    <form action="database.php" method="post">
    Item Number: <input type="text" name="ItemNumber">
    Stock: <input type="text" name="Stock">
    <input type="submit">
    </form>
Run Code Online (Sandbox Code Playgroud)

PHP是:

    <?php
    $con=mysqli_connect("localhost","root","root","inventory");
    if (mysqli_connect_errno($con))
      {
      echo "Failed to connect to MySQL: " . mysqli_connect_error();
      }
     $sql = "INSERT INTO current stock ('ItemNumber', 'Stock')
    VALUES
    ('$_POST[ItemNumber]','$_POST[Stock]'')";
    if (!mysqli_query($con,$sql))
      {
      die('Error: ' . mysqli_error($con));
      }
    echo "1 record added";
    mysqli_close($con);
    ?>
Run Code Online (Sandbox Code Playgroud)

ech*_*_Me 7

试试这个

你不应该在POST周围使用参数引用.你应该在POST中使用它们

       $sql = "INSERT INTO `current stock` (ItemNumber, Stock)
           VALUES
         ('".$_POST['ItemNumber']."', '".$_POST['Stock']."' )";
Run Code Online (Sandbox Code Playgroud)

你应该在将变量插入到像这样的mysql之前转义它们

  • 请注意,该示例不会调用mysqli_real_escape_string.您只需要mysqli_real_escape_string在查询中直接嵌入字符串时使用,但我建议您永远不要这样做.始终尽可能使用参数.

  • 请不要给出SQL注入的坏例子,特别是对于仍然存在语法问题的初学者.... (3认同)