我正在编写一个PHP脚本来将项目添加到购物篮中。我的购物篮表包含用户ID,产品ID,会话ID,备注和其他一些字段。某些字段可以为空白。例如:
如果某人未登录,那么我会将他们的会话ID存储在表格中,如果他们登录,则添加他们的用户ID,这样我就可以通过永久的方式将表格中的项目与用户进行匹配。如果是,我将添加用户ID。当谈到INSERT查询时,我可以这样做:
$ add_sql =“INSERT into sessionBasket(userid)VALUES( '“。isset($ _ SESSION [”userid“])?$ _SESSION [”userid“]:”“)。”'“;
它可以节省我很多时间进行变量检查和分支,因为人们可以登录或不签名,项目可以有或没有,这类事情。
答案 0 :(得分:1)
糟糕! SQL Injection!您可能会丢失整个数据库
您应该查看sql插入的预准备语句。
您需要使用mysqli界面,但它是这样的:
$statement = $db_connection->prepare("insert into ... VALUES(?)");
$statement->bind_param("id", $sid);
$statement->execute();
这将阻止sql注入攻击。
绝对最低限度你应该至少逃避字符串。
$sid = isset($_SESSION[userid]) ? mysql_real_escape_string($_SESSION[userid])) : '';
$add_sql = "insert into ... values($sid)";