php : POST & INSERT 到 SQL 数据库,'id' 来自 URL

php : POST & INSERT to SQL database, the 'id' from URL

我有一个 URL : http://webaddress.php?id=100

我正在尝试将 'id' 值 100 插入到我的 SQL table.

的列中

我尝试了以下方法:

$productid = $conn->real_escape_string($_POST['id']); 

$insertsql = "INSERT INTO TableName(table column)
        VALUES('$productid')";

任何人都可以建议正确的方法吗?谢谢

我的评论有点长,所以我 post 它作为一个答案。

正如其他人所说。如果您将带有 url 的值发送到您的脚本,那么您需要使用 $_GET 而不是 $_POST 来获取它 要确保该 id 确实是一个数字,您可以使用 (int) 喜欢 $productid = (int)$_GET['id']; (int) 会将您的变量转换为数字,如果它不是数字,它将 return 0 因此,如果 $productID 大于 0,您也可以在查询之前进行 checj 以防止在数据库中分配 og 零

也可以像 $productID = isset($_GET['id']) ? (int)$_GET['id'] : 0 这样使用 isset 函数,这样如果有人在没有参数 id 的情况下访问您的 url,他就不会得到未定义的错误。

对于您的查询,请使用准备好的语句或 PDO prevent sql injection

编辑: 在 w3schools 上,我发现了一些关于 prepared statements and PDO 尝试将这些示例实施到您自己的项目中的很好的解释和示例

第二次编辑: 我正在阅读我 post 编辑的 link 的准备语句示例,我认为它们犯了 1 个小错误。 在 $stmt->execute() 之后,他们假设数据已正确插入。但要确保数据确实插入,您应该将该部分更改为:

// Check if there is really inserted some rows into the database or not
if ($stmt->affected_rows > 0) {
  echo "New records created successfully";
}