使用 PHP 检查 MySQL INSERT QUERY 中变量存在的简明方法
我正在编写一个 PHP 脚本来将商品添加到购物篮中。我的购物篮表包含用户 ID、产品 ID、会话 ID、注释和其他一些字段。某些字段可以为空。例如:
如果某人未登录,那么我会将他们的会话 ID 存储在表中,如果他们登录,则添加他们的用户 ID,以便我有一种永久的方式将表中的项目与用户进行匹配。如果是的话,我会添加用户 ID。当涉及到 INSERT 查询时,我可以这样做:
$add_sql = "INSERT into sessionBasket (userid) VALUES ( '".isset($_SESSION["userid"]) ? $_SESSION["userid"] : "") ."'";
这会在变量检查和分支上节省我很多时间,因为人们可以登录也可以不登录,物品可以有注释也可以没有,之类的。
I am writing a PHP script to add items to a shopping basket. My shopping basket table has fields for the userid, product id, session id, notes and a few others. Some of the fields can be blank. For example:
if someone isn't signed in, then I will store their session id in the table and, if they sign in, add their userid so I have a permanant way to match the items in the table to the user. If they are, I'll add the userid. When it comes to the INSERT query, can I do something like this:
$add_sql = "INSERT into sessionBasket (userid) VALUES (
'". isset($_SESSION["userid"]) ? $_SESSION["userid"] : "") ."'";
It would save me so much time on variable checking and branching because people could be signed in or not, items could have notes or not, that sort of thing.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
哎呀! SQL 注入! 你可能会丢失整个数据库
你应该查看 SQL 插入的准备语句。
您需要使用 mysqli 接口,但它是这样的:
这将防止 sql 注入攻击。
绝对最低限度,您至少应该转义字符串。
Yikes! SQL Injection! you could lose your whole database
You should be looking at prepared statements for your sql insertion.
You need to use the mysqli interface but it goes like this:
This will prevent sql injection attacks.
At an absolute minimum you should at least escape the string.