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注入。通过连接未替换的字符串,有人窃取、修改或删除您的所有数据只是时间问题。这是一场即将发生的灾难。