gpt4 book ai didi

php - 使用 PHP 检查 MySQL INSERT QUERY 中变量存在的简明方法

转载 作者:行者123 更新时间:2023-11-29 15:09:04 24 4
gpt4 key购买 nike

我正在编写一个 PHP 脚本来将商品添加到购物篮中。我的购物篮表包含用户 ID、产品 ID、 session ID、注释和其他一些字段。某些字段可以为空。例如:

如果某人未登录,那么我会将他们的 session ID 存储在表中,如果他们登录,则添加他们的用户 ID,以便我有一种永久的方式将表中的项目与用户进行匹配。如果是的话,我会添加用户 ID。当涉及到 INSERT 查询时,我可以这样做吗:

$add_sql = "插入到 sessionBasket (用户 ID) 值 ('".isset($_SESSION["userid"]) ? $_SESSION["userid"] : "") ."'";

这将为我节省大量变量检查和分支时间,因为人们可以登录或不登录,项目可以有注释或没有注释,诸如此类的事情。

最佳答案

哎呀! SQL Injection!您可能会丢失整个数据库

您应该查看 SQL 插入的准备语句。

您需要使用 mysqli 接口(interface),但它是这样的:

$statement = $db_connection->prepare("insert into ... VALUES(?)");
$statement->bind_param("id", $sid);
$statement->execute();

这将防止sql注入(inject)攻击。

绝对最低限度,您至少应该转义字符串。

$sid = isset($_SESSION[userid]) ? mysql_real_escape_string($_SESSION[userid])) : '';
$add_sql = "insert into ... values($sid)";

关于php - 使用 PHP 检查 MySQL INSERT QUERY 中变量存在的简明方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1338051/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com