我收到了来自get请求的ID并将其放入新变量$ id。我试图将此变量包含在SQL查询中,但它不起作用。但是,当我对ID进行硬编码时,它确实有效。
这很好用。
$query = "UPDATE products SET p_name = " . "'TEST' WHERE p_id=000007;";
以下代码不起作用。谁能解释一下呢?
$query = "UPDATE products SET p_name = " . "'TEST' WHERE p_id=" . $id . ";";
我的所有代码,如果有人可以提供帮助:
<?php
// Connection file
//require 'db.php';
// Create connection
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Check Connection
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
$id = $_GET['id'];
echo $id;
if (isset($_POST["updateSubmit"])) {
$query = "UPDATE products SET p_name = " . "'TEST' WHERE p_id=" . $id . ";";
$result = mysqli_query($conn, $query);
}
?>
<div>
<form id="updateForm" name="updateForm" action="update.php" method="post">
<label>Product name:</label><br>
<input type="text" name="updateProductName"><br>
<label>Product type</label><br>
<select name="updateProductType">
<option value="Jackets/coats">Jackets/coats</option>
<option value="Accessories">Accessories</option>
<option value="Shirts">Shirts</option>
<option value="Jeans">Jeans</option>
<option value="Trousers">Trousers</option>
<option value="Shoes">Shoes</option>
<option value="Suits">Suits</option>
</select>
<p>Product description:</p>
<textarea name="updateProductDesc" rows="10" cols="30"></textarea><br>
<label>Product price:</label><br>
<input type="text" name="updateProductPrice"><br>
<label>Stock level:</label><br>
<input type="text" name="updateProductStock"><br>
<input type="submit" name="updateSubmit" value="Submit">
</form>
</div>
<?php
?>
我在另一个包含ID的页面中使用了这个链接。
<a href="update.php?mode=update&id=<?php echo $productDetails['p_id']; ?>"
title="Update <?php echo $productDetails['p_name']; ?>">Update</a>
答案 0 :(得分:2)
您没有获取ID,因为您的网址中没有ID
<form id="updateForm" name="updateForm" action="update.php?id=<?php echo $id; ?>" method="post">
或将ID隐藏为
<input type="hidden" name="id" id="your_id"/>
答案 1 :(得分:0)
将您的查询更改为
$query = "UPDATE products SET p_name = 'TEST' WHERE p_id=". $id;