Php使用字符串中的变量(串联)

Php使用字符串中的变量(串联),php,string-concatenation,Php,String Concatenation,为什么我不能使用这个代码?谁能告诉我正确的密码是什么 $lfr_prfid = "profile='$log_id'"; $lfrsql = "SELECT * FROM friends WHERE user2='$log_id' AND accepted='1'"; $lfrquery = mysqli_query($db_conx, $lfrsql); while ($lfrrow = mysqli_fetch_array($lfrquery, MYSQLI_ASSOC)) { $lf

为什么我不能使用这个代码?谁能告诉我正确的密码是什么

$lfr_prfid = "profile='$log_id'";

$lfrsql = "SELECT * FROM friends WHERE user2='$log_id' AND accepted='1'";
$lfrquery = mysqli_query($db_conx, $lfrsql);

while ($lfrrow = mysqli_fetch_array($lfrquery, MYSQLI_ASSOC)) {

$lfr_id = $lfrrow["id"];
$lfr_user1 = $lfrrow["user1"];
$lfr_user2 = $lfrrow["user2"];

$lfr_prfid += " OR profile='".$lfr_user1."'";

}
最后一行是我写的(+=),代码不起作用,那么我如何用另一种方式来做呢?所以我可以在SELECT语句中使用它

$psql = "SELECT * FROM posts WHERE ".$lfr_prfid." ORDER BY postdate DESC LIMIT 0,20";
$pquery = mysqli_query($db_conx, $psql);

$lfr\u prfid.=

连接,而不是与
+
连接。
+
是javascript中的串联

因此,在php中:
$myVar.='foo'

在javascript中:
myVar+='foo'

根据您的编辑进行更新:
请不要在数据库查询中使用它。使用事先准备好的语句,否则您的代码会很危险。

$lfr\u prfid.=

连接,而不是与
+
连接。
+
是javascript中的串联

因此,在php中:
$myVar.='foo'

在javascript中:
myVar+='foo'

根据您的编辑进行更新: 请不要在数据库查询中使用它。使用预先准备好的语句,否则代码会很危险。

将代码更改为:

$lfr_prfid .= " OR profile='".$lfr_user1."'";
PHP中的连接是用
完成的,而不是像您所写的那样用
+=
完成的

希望这有帮助

将代码更改为:

$lfr_prfid .= " OR profile='".$lfr_user1."'";
PHP中的连接是用
完成的,而不是像您所写的那样用
+=
完成的


希望这有帮助

了解PHP的特性。在这种情况下,这将是相关的。非常感谢我会。你迫切需要阅读,因为这件事是千疮百孔。此方法安全可靠。请单击答案左侧投票箭头下方的复选标记,接受最有用的答案。这也会给你一些声望点数。如果您还没有参加过SO之旅,请在此处查看:。了解PHP的。在这种情况下,这将是相关的。非常感谢我会。你迫切需要阅读,因为这件事是千疮百孔。此方法安全可靠。请单击答案左侧投票箭头下方的复选标记,接受最有用的答案。这也会给你一些声望点数。如果您没有参加过SO之旅,请在此处查看:。为什么它很危险?请阅读准备好的声明。更有可能的是,有人可以使用sql注入对您的数据库执行任何他们想要的操作@师父非常感谢,但是还有其他的方法来做这个陈述吗?@Master准备了陈述。用谷歌搜索它。@Master用以下方法包装整个语句:
mysqli\u real\u escape\u string()
或使用m59中提到的准备好的语句为什么它很危险?阅读准备好的语句。更有可能的是,有人可以使用sql注入对您的数据库执行任何他们想要的操作@师父非常感谢,但是还有其他的方法来做这个陈述吗?@Master准备了陈述。用谷歌搜索它。@Master用以下方法包装整个语句:
mysqli\u real\u escape\u string()
或使用前面提到的准备好的语句