假设我有这样的代码:
$dbh = new PDO("blahblah");
$stmt = $dbh->prepare('SELECT * FROM users where username = :username');
$stmt->execute( array(':username' => $_REQUEST['username']) );
Run Code Online (Sandbox Code Playgroud)
PDO文件说:
准备语句的参数不需要引用; 司机为你处理.
这真的是我需要做的就是避免SQL注入吗?这真的很容易吗?
如果它有所作为,你可以假设MySQL.另外,我真的只是对使用针对SQL注入的预处理语句感到好奇.在这种情况下,我不关心XSS或其他可能的漏洞.
我正在处理一个表单,其中有可能让用户在要提交给数据库的字符串中使用非法/特殊字符.我想在字符串中转义/否定这些字符,并且一直在使用htmlspecialchars().但是,有更好/更快的方法吗?
我怎样才能更换所有'?' 变量?就像是:
$name = 'test' ;
$lname = 'lastTest';
$id = 1 ;
->where ( 'customers.name = ? and customers.lastname = ? and customers.id = ?' , $name , $lname , $id ) ;
Run Code Online (Sandbox Code Playgroud)
输出:
customers.name = 'test' and customers.lastname = 'lastTest' and customers.id = 1
有任何想法吗?