Php 为什么我的数据库在连接和包含时不能获取用户的表单信息?

Php 为什么我的数据库在连接和包含时不能获取用户的表单信息?,php,mysql,forms,web,input,Php,Mysql,Forms,Web,Input,我正在尝试向我的数据库添加一些信息。代码会执行,但不会显示在数据库中。如果有人能帮我,我会很高兴的!非常感谢你!节日快乐 我试着用默认值运行程序。 我也尝试过不同的语法。 我试着交换header和mysqli_close的位置 $conn = mysqli_connect("localhost", "root", "root", "Store"); $nameTshirt = 'T-Shirt NDOE'; $priceTshirt = 35.00; $nameAlbum = 'Thousan

我正在尝试向我的数据库添加一些信息。代码会执行,但不会显示在数据库中。如果有人能帮我,我会很高兴的!非常感谢你!节日快乐

我试着用默认值运行程序。 我也尝试过不同的语法。 我试着交换header和mysqli_close的位置

$conn = mysqli_connect("localhost", "root", "root", "Store");

$nameTshirt = 'T-Shirt NDOE';
$priceTshirt = 35.00;
$nameAlbum = 'Thousands of Scars Album';
$size = $_GET['size'];
$quantity = $_GET['quantityOne'];

    $sql = "INSERT INTO shoppingCart(name, size, quantity, price) 
    VALUES ('T-Shirt NDOE', 'XL', '3', 35.00);";
mysqli_query($conn, $sql);

header("Location: Store - EN.php?item=added");
mysqli_close($conn);
从以下表单中获取用户的输入:

<form action="addTshirt.php">
 <div class="item">
 <img src="../Images/store/NDOE - T-SHIRT-b-600x600.jpg" width="300" height="300" alt="NDOE T-Shirt image" class="storeimage">
 </div>
 <div class = "name"> <b>NDOE T-Shirt</b></div>
 <div class = "price">35.00</div>

 <div class = "name2">Size:
    <select class = "drop" name = "size">
        <option value = "select">Select</option>
        <option value = "S">S</option>
        <option value = "M">M</option>
        <option value = "L">L</option>
        <option value = "XL">XL</option>
    </select>
 </div>
 <div class="name2">Quantity:

    <select class = "quantity" name = "quantityOne">
        <option value = "0">0</option>
        <option value = "1">1</option>
        <option value = "2">2</option>
        <option value = "3">3</option>
        <option value = "4">4</option>
        <option value = "5">5</option>
        <option value = "6">6</option>
        <option value = "7">7</option>
        <option value = "8">8</option>
        <option value = "9">9</option>
        <option value = "10">10</option>
    </select></div>

    <div class="wrapper">
        <input type="submit" class = "buttonP" name="tshirtButton" value="Add to cart">
    </div>

</div>
</form>
</div>
</td>

你没有使用你的变量

您还应该使用准备好的语句来防止SQL注入

$nameTshirt = 'T-Shirt NDOE';
$priceTshirt = 35.00;
$nameAlbum = 'Thousands of Scars Album';
$size = $_GET['size'];
$quantity = $_GET['quantityOne'];

$stmt = mysqli_prepare($conn, "INSERT INTO shoppingCart(name, size, quantity, price) 
    VALUES (?, ?, ?, ?);") or die(mysqli_error($conn);
mysqli_stmt_bind_param($stmt, "ssid", $nameTshirt, $size, $quantity, $priceTshirt);
mysqli_stmt_execute($stmt) or die(mysqli_stmt_error($stmt);

您没有使用$sql中的任何变量。为什么在使用@Barmar的代码时完全覆盖了这个问题?这甚至不是预处理语句的工作方式。你应该一封接一封地使用巴尔马的回信。根据您之前的编辑,Barmar现在刚刚回滚。请不要这样做。即使使用该代码,它仍然不起作用。你可以试着简单地解释什么是错的。我已经回复了这个问题,你需要保留原始代码,这样所有的读者都会看到我的回答。如果您在实现答案时遇到问题,请在末尾添加代码。我尝试过使用它们,但仍然不起作用$sql=INSERT-INTO-shoppingCartname、size、quantity、price-VALUES{$nameTshirt}、{$size}、{$quantity}、{$priceshirt};;字符串周围需要引号。如果使用预先准备好的语句,这不是问题。ssif非常确定f是错误的。不确定你想用哪一个。你说得对,应该是d表示双精度,而不是f表示浮点。我认为OP不知道如何处理你的答案@Barmar Edit:他们用你的答案作为代码编辑了他们的帖子。