HTML表单,将输入的信息发送到数据库中的MySQL表

时间:2014-12-07 22:52:18

标签: php html mysql database

我已尝试在本网站上给出了一些不同的答案,但我似乎无法让一切正常运作。我将发布我目前的内容。

我的数据库名称是" artStore"
我的表名是"库存"

表单的HTML代码是:

<form action="sendToTable.php" method="post">

        <h3>Product:</h3>
            <input type="text" name="$row[product]">

        <h3>Category:</h3>
            <input type="text" name="$row[category]">

        <h3>Seller:</h3>
            <input type="text" name="$row[seller]">

        <input type="submit">
</form>

我的PHP代码,用于将信息发送到数据库:

 $sql = "INSERT INTO inventory (id, product, category, seller) VALUES ('$row[id]', '$row[product]', '$row[category]', '$row[seller]')";
  //Run the sql statement
  if ($connection->query($sql) === true) {
    echo "The Insert Worked";
  } else {
    echo "Error occured in the insert: " . $connection->error;
  }


   $connection->close();

用于显示表格的PHP代码:

$sql = "SELECT * FROM inventory";
  $result = $connection->query($sql);

  if ($result->num_rows > 0) {
    while ($row = $result->fetch_assoc()) {
      echo "
      id: $row[id] <br>
      product: $row[product] <br>
      category: $row[category] <br>
      seller: $row[seller] <br>
      <hr>
      ";
    }
  } else {
    echo "No Results";
  }
  $connection->close();

非常感谢任何帮助!我是网络编程的新手。

编辑1:

我更新了我的文件,我得到的错误是:

  

&#34;插入中出现错误:列数与第1行和第34行的值计数不匹配;

它说错误发生在包含用于将Info发送到数据库的PHP代码的文件中,但这里是我的所有文件。

表单的HTML代码:

<form action="sendToTable.php" method="post">

        <h3>Product:</h3>
            <input type="text" name="product">

        <h3>Category:</h3>
            <input type="text" name="category">

        <h3>Seller:</h3>
            <input type="text" name="seller">

        <input type="submit">
</form>

用于将Info发送到数据库的PHP代码:

//Create the SQL Statement 
  $product = $_POST['product'];
  $category = $_POST['category'];
  $seller = $_POST['seller'];

  $sql = "INSERT INTO inventory (id, product, category, seller) VALUES ('$product', '$category', '$seller')";
  //Run the sql statement
  if ($connection->query($sql) === true) {
    echo "The Insert Worked";
  } else {
    echo "Error occured in the insert: " . $connection->error;
  }


   $connection->close();

用于显示表格的PHP代码:

$sql = "SELECT * FROM inventory";
  $result = $connection->query($sql);

  if ($result->num_rows > 0) {
    while ($row = $result->fetch_assoc()) {
      echo "
      id: $row[id] <br>
      product: $row[product] <br>
      category: $row[category] <br>
      seller: $row[seller] <br>
      <hr>
      ";
    }
  } else {
    echo "No Results";
  }
  $connection->close();

2 个答案:

答案 0 :(得分:1)

你不应该为&#34; $ row [product]&#34;调用HTML输入字段。等等,但只是&#34;产品&#34;。

用于插入数据库的PHP代码是正确的,但变量未设置。 您需要首先从HTML表单中检索字段:

$product = $_POST['product']; // 'product' is the name of the HTML input field $category = $_POST['category']; // etc...

您还应该清理所有用户输入以避免SQL注入等。 See this answer for a good explanation

同时更改$ sql字符串变量中变量的名称,因为当前的变量名称不存在。

答案 1 :(得分:1)

INSERT INTO inventory (id, product, category, seller) VALUES ('$product', '$category', '$seller')

您有4个字段(ID,产品,类别,卖家)

和3个值('$ product','$ category','$ seller')

在id的值中添加'' 或者如果它是自动递增的话,不要把id放在字段中......