Php 在mysql查询中使用组_CONCAT时出错
我的代码运行良好,但当我添加Php 在mysql查询中使用组_CONCAT时出错,php,mysql,sql,Php,Mysql,Sql,我的代码运行良好,但当我添加 GROUP_CONCAT(CONCAT("<a href='index.php?id=", awards_user.userid, "'>", awards_user.username, "</a>")) AS userlist GROUP_CONCAT(CONCAT(“”)作为用户列表 要获取用户名为的用户id,请显示错误 分析错误:语法错误,意外的T_字符串[在此行中] SELECT awards.name as name, awar
GROUP_CONCAT(CONCAT("<a href='index.php?id=", awards_user.userid, "'>", awards_user.username, "</a>")) AS userlist
GROUP_CONCAT(CONCAT(“”)作为用户列表
要获取用户名为的用户id,请显示错误
分析错误:语法错误,意外的T_字符串[在此行中]
SELECT awards.name as name, awards.link as link,
GROUP_CONCAT(DISTINCT awards_user.username) AS username,
GROUP_CONCAT(DISTINCT awards_user.userid) AS userid,
GROUP_CONCAT(CONCAT("<a href='index.php?id=", awards_user.userid, "'>", awards_user.username, "</a>")) AS userlist
FROM awards LEFT JOIN awards_user ON (awards_user.awardid = awards.awardid)
where awards.forumid = '".$_REQUEST['forumid']."'
GROUP BY awards.awardid, awards.name, awards.link
选择awards.name作为名称,选择awards.link作为链接,
组\u CONCAT(不同的奖励\u user.username)作为用户名,
组\u CONCAT(不同的奖励\u user.userid)作为用户ID,
组_CONCAT(CONCAT(“”)作为用户列表
从奖品左侧加入奖品\u用户打开(awards\u user.awardid=awards.awardid)
其中awards.forumid='“$\u请求['forumid']””
按awards.awardid、awards.name、awards.link分组
您应该用反斜杠转义双引号“
”,否则php会将其理解为字符串的结尾:
$sql = "SELECT awards.name as name
, awards.link as link
, GROUP_CONCAT(DISTINCT awards_user.username) AS username
, GROUP_CONCAT(DISTINCT awards_user.userid) AS userid
, GROUP_CONCAT(CONCAT(\"<a href='index.php?id=\", awards_user.userid, \"'>\"
, awards_user.username, \"</a>\")) AS userlist
FROM awards LEFT JOIN awards_user ON (awards_user.awardid = awards.awardid)
WHERE awards.forumid = '" . $_REQUEST['forumid'] . "'
GROUP BY awards.awardid
, awards.name
, awards.link";
$sql=“选择awards.name作为名称
,awards.link作为链接
,GROUP_CONCAT(独特的奖励_user.username)作为用户名
,GROUP_CONCAT(DISTINCT awards_user.userid)作为userid
,组\u CONCAT(CONCAT(\“\”)作为用户列表
从奖品左侧加入奖品\u用户打开(awards\u user.awardid=awards.awardid)
其中awards.forumid='“$\u请求['forumid']””
按奖项分组
,awards.name
,awards.link“;
引号转义是一个问题。为什么不这样使用呢
$formid = $_REQUEST['forumid'];
$query = <<<EOT
SELECT awards.name as name, awards.link as link,
GROUP_CONCAT(DISTINCT awards_user.username) AS username,
GROUP_CONCAT(DISTINCT awards_user.userid) AS userid,
GROUP_CONCAT(CONCAT("<a href='index.php?id=", awards_user.userid, "'>", awards_user.username, "</a>")) AS userlist
FROM awards LEFT JOIN awards_user ON (awards_user.awardid = awards.awardid)
where awards.forumid = '$formid'
GROUP BY awards.awardid, awards.name, awards.link
EOT;
同一行中出现同样的错误,Thnx您是否有完整的PHP代码来设置此错误?将“$\u请求['forumid']”串联起来。“看起来很奇怪。您需要学习PHP字符串处理和转义的基础知识。看起来您需要转义双引号。
”“$\u请求['forumid']。“
这不是问题的原因,第行GROUP_CONCAT(CONCAT(“”)上的错误作为userlist
thnx太多了,我发现可以解决问题,但我会尝试你的代码,我会注意你的观察
$formid = $_REQUEST['forumid'];
$id_link_1 = "<a href='index.php?id=";
$id_link_2 = "'>";
$id_link_3 = "</a>";
$query = <<<EOT
SELECT awards.name as name, awards.link as link,
GROUP_CONCAT(DISTINCT awards_user.username) AS username,
GROUP_CONCAT(DISTINCT awards_user.userid) AS userid,
GROUP_CONCAT(CONCAT($id_link_1, awards_user.userid, $id_link_2, awards_user.username, $id_link_3)) AS userlist
FROM awards LEFT JOIN awards_user ON (awards_user.awardid = awards.awardid)
where awards.forumid = '$formid'
GROUP BY awards.awardid, awards.name, awards.link
EOT;