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

将PHP$变量传递给MySQLI的正确方法,php,mysql,arrays,variables,mysqli,Php,Mysql,Arrays,Variables,Mysqli,我想知道向查询传递$变量的安全或正确方法。我是PHP新手,这就是为什么我要问这样的初学者问题。下面是示例1和示例2,由于符号,哪一个是正确的和安全的 示例一: //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 as

我想知道向查询传递$变量的安全或正确方法。我是PHP新手,这就是为什么我要问这样的初学者问题。下面是示例1和示例2,由于符号,哪一个是正确的和安全的

示例一:

//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";
我不需要关于PHP4、PHP5或PDO的答案。我只需要知道什么是正确的:

这个

还是这个

'$identification'
怎么样

 $query = 
 "SELECT * FROM `members` WHERE `username` = '" . 
 mysql_escape_string($identification) . 
 "' LIMIT 1";

但是,
mysql\u escape\u string
不推荐使用。如果可以,您应该使用
mysql\u real\u escape\u string


我建议您使用PDO而不是mysqli扩展(与PHP5.1及以上版本一起使用)


无法在我的共享主机提供商上运行php 5。我不敢相信,您的php版本是什么?谁是您的托管提供商?“无法在我的共享托管提供商上运行PHP5”-您的问题中有
mysqli\uuu
code。猜猜看
mysqli_uz
在PHP5上运行。你好,弗雷德。真正地我的主机供应商说他们运行4.5或4点的东西。我试着运行一个脚本,但它不起作用。PHP不赞成这样说:“从PHP 5.5.0开始,这个扩展就不受欢迎,将来将被删除。相反,应该使用MySQLi或PDO_MySQL扩展。”@Krycke,我知道,但OP已经声明他不能使用>PHP 5OK,但是如果他可以使用PHP版本>=4.3,那么至少应该使用mysql\u real\u escape\u字符串。@Krycke,谢谢你的建议。我更新了答案,我编辑了问题,因为我问的是没人在谈论的东西。我编辑了问题,因为我问的是没人在谈论的东西
 $query = 
 "SELECT * FROM `members` WHERE `username` = '" . 
 mysql_escape_string($identification) . 
 "' LIMIT 1";