php项目中sql,php – 大括号{}在SQL查询中做了什么?

有关双引号字符串语法,请参见

http://www.php.net/manual/de/language.types.string.php#language.types.string.parsing.

花括号用于复杂的变量表达式.它们由PHP解释,而不是由SQL接口解释.

$query = "SELECT * FROM users WHERE user='$_POST['username']' AND password='$_POST['password']'";

以上将导致解析错误.没有花括号,你必须写:

$query = "SELECT * FROM users WHERE user='$_POST[username]' AND password='$_POST[password]'";

注意缺少关键引号.这仅适用于简单的数组访问,以及简单的对象属性表达式.对于任何更复杂的东西,请使用花括号.

既然你知道这一点,做一个你永远不会这样做的小发誓.因为直接插入用户输入并不是一个好主意. http://bobby-tables.com/

但是为了给一个更复杂的卷曲字符串语法提供一个例子,这就是我要做的:

$query = "SELECT * FROM users WHERE user={$_POST->id->sql['username']}";

(有些内联过滤和引用.就像示例一样,不适用于默认的PHP设置.)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值