0

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

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

我不断收到此错误:

解析错误:语法错误,意外的 T_ENCAPSED_AND_WHITESPACE,在第 32 行的 C:\xampp\htdocs\beta\profile.php 中需要 T_STRING 或 T_VARIABLE 或 T_NUM_STRING

4

3 回答 3

5

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

让您的 SQL 库/客户端/服务器为您执行此操作(同时免费转义特殊字符)。尝试通过将字符串混合在一起来构建代码相对容易出错,并且涉及各种难以维护的引号字符的巧妙组合。

请改用准备好的语句和绑定的参数

于 2012-08-11T21:19:00.693 回答
2

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

$query2= "SELECT * FROM relationships WHERE user_1= '" . $_SESSION['user_id'] . "' AND user_2= '" . $user_id . "'";
于 2012-08-11T21:19:00.673 回答
2

任何一个:

$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'";

修复您的语法错误。但是,通过连接形成查询是一个坏主意。至少,mysql_realescapestring如果不转向使用 PDO,您应该所有的论点。

于 2012-08-11T21:24:26.723 回答