'".$string."'
和'$string'
SELECT * FROM users WHERE UserName='".$USERNAME."' AND Pass='".$PASS."'
/* AND */
SELECT * FROM users WHERE UserName='$USERNAME' AND Pass='$PASS'
如果不同,安全性会更好吗? 字符串始终在输入时保护,但仅适用于上述不同的
修改 我在PHP JUST上使用上面的查询并需要它
答案 0 :(得分:3)
在PHP中,至少,两者之间绝对没有区别 - 它们完全相同。两者都同样容易受到SQL注入的攻击。</ p>
答案 1 :(得分:2)
在你的情况下,它们之间没有区别。
但如果您连接的字符串不包含特殊字符(例如'
),您会发现不同之处:
$b = 'b';
$string = "a" . $b . "c";
不等于:
$b = 'b';
$string = "a$bc";
因为PHP会查找$bc
变量。但这相当于:
$b = 'b';
$string = "a{$b}c";
除了你的例子相当于:
SELECT * FROM users WHERE UserName='{$USERNAME}' AND Pass='{$PASS}'
但请注意,单引号字符串:
$b = 'b';
$string = 'a{$b}c';
将被视为a{$b}c
。
最后,正如@duskwuff警告的那样,你应该知道sql injections。