Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 连接查询内的变量_Php_Mysql - Fatal编程技术网

Php 连接查询内的变量

Php 连接查询内的变量,php,mysql,Php,Mysql,连接此查询的正确方法是什么 $query2= "SELECT * FROM relationships WHERE user_1= '.$_SESSION['user_id'].' AND user_2= '.$user_id.' "; 我不断地发现这个错误: 分析错误:语法错误,意外的T_封装的_和_空格,C:\xampp\htdocs\beta\profile.php中的T_字符串或T_变量或T_NUM_字符串位于第32行您的单引号和双引号嵌套不正确 $query2= "SELE

连接此查询的正确方法是什么

$query2= "SELECT * FROM relationships WHERE user_1= '.$_SESSION['user_id'].'     
AND user_2= '.$user_id.' ";
我不断地发现这个错误:


分析错误:语法错误,意外的T_封装的_和_空格,C:\xampp\htdocs\beta\profile.php中的T_字符串或T_变量或T_NUM_字符串位于第32行

您的单引号和双引号嵌套不正确

$query2= "SELECT * FROM relationships WHERE user_1= '" . $_SESSION['user_id'] . "' AND user_2= '" . $user_id . "'";
连接此查询的正确方法是什么

$query2= "SELECT * FROM relationships WHERE user_1= '.$_SESSION['user_id'].'     
AND user_2= '.$user_id.' ";
让您的SQL库/客户端/服务器为您执行此操作(同时免费转义特殊字符)。试图通过将字符串混搭在一起来构建代码相对容易出错,并且涉及到各种引号字符的巧妙组合,这些组合可能很难维护

请改为使用。

或者:

$query2 = "SELECT * FROM relationships WHERE user_1='" . $_SESSION['user_id'] . "'AND user_2='" . $user_id . "'";
或:


修复您的语法错误。然而,通过连接形成查询是一个坏主意。至少,如果不使用PDO,您应该
mysql\u realeescapestring
所有参数。

并且不要忘记连接字符串时SQL注入攻击的风险……这是正确的答案。这个问题是关于字符串连接的,它不是在征求关于如何访问数据库的意见。@Alnitak:OP提出错误问题的事实并不能证明投票结果是正确的。@Eric正是这样。这里没有理由投反对票。这两个答案都正确地回答了问题。如果您不同意OP使用的方法,请对问题发表评论,不要对正确答案投反对票。在没有指出安全问题的情况下回答书面问题是不负责任的。发表评论比对正确答案投反对票更能教育OP。请帮自己一个忙,通过使用参数化查询而不是串接字符串来防止可能的sql注入。通过连接未替换的字符串,有人窃取、修改或删除您的所有数据只是时间问题。这是一场即将发生的灾难。