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