将PHP $变量传递给MySQLI的正确方法

时间:2015-04-18 13:28:29

标签: php mysql arrays variables mysqli

我想知道将$变量传递给查询的安全或正确方法。我是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'

2 个答案:

答案 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