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";
}
我有一个 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";
}