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



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

我正试图将"id"值100插入SQL表中的一列中。

我尝试过以下几种:

$productid = $conn->real_escape_string($_POST['id']); 
$insertsql = "INSERT INTO TableName(table column)
VALUES('$productid')";

有人能就正确的方法提出建议吗?感谢

我的评论有点长,所以我把它作为答案发布。

正如其他人所说。如果您向脚本发送带有url的值,则需要使用$_GET而不是$_POST来获取该值。为了确保id确实是一个数字,您可以像使用$productid = (int)$_GET['id'];一样使用(int)(int)将把变量变成数字,如果不是数字,则返回0因此,如果$productID大于0,您也可以在查询前进行检查,以防止在数据库中分配og zero

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

对于您的查询,请使用准备好的语句或PDO来防止sql注入

编辑:在w3schools上,我发现了一些关于准备好的语句的很好的解释和示例,PDO试图将这些示例实现到您自己的项目中

第二版:我正在阅读我发布的链接的事先准备好的声明示例,在我看来,它们犯了一个小错误。在CCD_ 9之后,他们认为数据被正确地插入。但为了确保数据真正插入,你可以将该部分更改为:

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

最新更新