我想知道将$变量传递给查询的安全或正确方法。我是PHP的新手,这就是为什么我问这样的初学者问题。这是一个例子和第二个例子,哪一个因符号而正确且更安全?
示例一:
//here is the line I am asking about. The $identification
$query = "SELECT * FROM `members` WHERE `username` = '$identification' LIMIT 1";
示例二:
//here is the line I am asking about. The $identification
$query = "SELECT * FROM `members` WHERE `username` = '" . $identification . "' LIMIT 1";
我不需要有关PHP 4或5或PDO的答案。我只需要知道什么是正确的:
这个
'" . $identification . "'
或者这个
'$identification'
答案 0 :(得分:0)
怎么样
$query =
"SELECT * FROM `members` WHERE `username` = '" .
mysql_escape_string($identification) .
"' LIMIT 1";
http://php.net/manual/en/function.mysql-escape-string.php
但是,mysql_escape_string
已被弃用。如果可以,您应该使用mysql_real_escape_string
http://php.net/manual/en/function.mysql-real-escape-string.php
答案 1 :(得分:0)
我建议你使用PDO而不是mysqli扩展(适用于php 5.1及以上版本)
http://code.tutsplus.com/tutorials/why-you-should-be-using-phps-pdo-for-database-access--net-12059