php - 为什么我的数据库在连接和包含时不能获取用户的表单信息?
问题描述
我正在尝试将一些信息添加到我的数据库中。代码执行但未显示在数据库中。如果有人可以帮助我,我会很高兴!非常感谢!节日快乐 :)!
我尝试使用默认值运行程序。我也尝试过不同的语法。我尝试交换 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);
推荐阅读
- .net-core - 有没有办法为 .NET Core 搭建脚手架测试?
- android - 此商家未启用 google pay
- node.js - 未使用 regedit 将值设置为注册表
- java - jOOQ:从外键获取引用表
- ios - 如何为选定的 tableView 行创建自定义图像复选标记附件?
- laravel-5.8 - 如何设置路径以便它们在本地主机和远程服务器上工作
- python-3.x - 优化对称测试
- python - 日期时间写道 1899-12-30:如何删除它?
- arrays - 从 Select-Object 启动一个数组
- javascript - 如何将参数传递给 JS ES6 类中的函数?