【问题标题】:Unable to store PHP form data in database [duplicate]无法将 PHP 表单数据存储在数据库中 [重复]
【发布时间】:2017-09-19 12:14:31
【问题描述】:

我正在开发一个基于 PHP、Bootstrap 和 MySQLi 构建的示例电子商务网站

我面临 2 个 PHP 页面的问题:home.php 和 cart-script.php

对于带有文本输入和按钮的表单,home.php 的一些相关部分是: `

<div class="panel panel-default">
    <div class="panel-heading">
        <div class="panel-title">
            <?php TitleQuery(2); ?>
        </div>
    </div>
    <div class="panel-body">
        <center>
            <?php
                PhotoQuery(2);
            ?>
        </center>
            <p>
                <?php
                    BodyQuery(2);
                ?>
            </p>
    <form action="cart-script.php" method="POST">
        <p>
            <center>
                <input type="number" class="form-control" name="name2" placeholder="Select quantity to add:">
                </input>
            </center>
        </p>
        <input type="button" name="submit2" class="btn btn-primary btn-block" value="Add to cart">
        </input>
    </form>
</div>

`

我的 cart-script.php 文件代码是: `

session_start();
require_once("connection.php");
if(isset($_POST['submit2']))
{
    $n=int($_POST['name2']);
    $id=2;
    $query1= "SELECT ItemName,Price FROM items WHERE ItemID='2'";
    $result1=mysqli_query($con,$iquery1);
    while($row=mysqli_fetch_array($result))
    {
        $iname=$row["ItemName"];
        $p=$row["Price"];
    }
    $query = "INSERT INTO shopcart VALUES 
             (
                 '{$id}',
                 '{$iname}',
                 '{$p}',
                 '{$n}'
             )";
    $result=mysqli_query($con,$query);
}

?>`

每当我单击 home.php 中的“添加到购物车”按钮,然后在 WampServer 上的 PHPMyAdmin 上检查数据库时,数据库并没有全部受到影响。 我哪里错了?

【问题讨论】:

  • 您已经在使用支持 prepared statements 的 API 和有界变量输入,您应该使用带占位符的参数化查询(prepared statements)来保护您的数据库免受SQL-injection !开始使用 mysqli::prepare()mysqli_stmt::bind_param()
  • 使用mysqli_error()让 MySQL 告诉你问题所在
  • @Qirel 我试过mysqli_error()函数,但数据库仍然不受影响
  • 一些简单的调试通常会有所帮助。 将一些输出放入您的 cart-script.php 文件中,打开您的开发工具 (F12) 并查看它说。在 PHP 中打开错误报告。
  • while($row=mysqli_fetch_array($result)) 失败了,错误报告会告诉你未定义的变量。

标签: php html mysql mysqli


【解决方案1】:

您只需要提交您的表单:

<input
  type="submit"
  name="submit2"
  class="btn btn-primary btn-block"
  value="Add to cart">

您的表单尚未提交

【讨论】:

  • 我不明白
  • 您需要将提交按钮的类型从“按钮”更改为“提交”。
  • @Siddharth:您没有将表单提交到服务器
【解决方案2】:
session_start();
        require_once("connection.php");
        if(isset($_POST['submit2']))
        {
            $n = $_POST['name2'];
            $id=2;
            $query1= "SELECT ItemName,Price FROM items WHERE ItemID = '2' ";
            $result1=mysqli_query($con,$query1);
            while($row=mysqli_fetch_array($result1))
            {
                $iname=$row["ItemName"];
                $p=$row["Price"];

                $query = "INSERT INTO shopcart VALUES ('$id','$iname','$p','$n') ";
                $result = mysqli_query($con,$query);
                if($result)
                {
                    echo "success";
                }
            }
        }

add then You have some undefined like $iquery1 我已经更新了它可能对你有用的代码。

【讨论】:

    猜你喜欢
    • 2022-10-13
    • 2014-06-01
    • 2020-04-28
    • 1970-01-01
    • 2018-03-16
    • 1970-01-01
    • 2012-01-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多