[英]How can I fix single quote error in SQL query?
我有一个SQL
查询,其中我将英寸转换为英尺。
<?php
$query ="
SELECT *
,replace (replace('<feet>'' <inches>"',
'<feet>', height / 12),
'<inches>', height % 12) AS playerHeight
,abbrName
FROM leagueRosters
INNER JOIN leagueTeams AS teamInfo
ON leagueRosters.teamId=teamInfo.teamId
WHERE abbrName LIKE '".$_GET['team']."'
ORDER BY rosterId DESC
";
$resultRoster = mysqli_query($connect, $query);
?>
据我了解,我应该将单引号加倍,这已经做了
,replace (replace("<feet>"" <inches>"",
"<feet>", height / 12),
"<inches>", height % 12) AS playerHeight
我也尝试过
,replace (replace("'<feet>'" "'<inches>'",
"'<feet>'", height / 12),
"'<inches>'", height % 12) AS playerHeight
两者均无效。 我尝试了其他几种组合,但总是至少在一行上出现错误。
我遵循了这个问题的答案- 如何在SQL Server中转义单引号? 但是我仍然不确定我在做什么错。
您需要转义双引号,以便它不会结束PHP字符串。
$query ="
SELECT *
,replace (replace('<feet>'' <inches>\"',
'<feet>', height / 12),
'<inches>', height % 12) AS playerHeight
,abbrName
FROM leagueRosters
INNER JOIN leagueTeams AS teamInfo
ON leagueRosters.teamId=teamInfo.teamId
WHERE abbrName LIKE '".$_GET['team']."'
ORDER BY rosterId DESC
";
但是首先不需要使用replace
,只需使用字符串连接即可。
$query ="
SELECT *
,CONCAT(FLOOR(height/12), ''' ', height % 12, '\"') AS playerheight
,abbrName
FROM leagueRosters
INNER JOIN leagueTeams AS teamInfo
ON leagueRosters.teamId=teamInfo.teamId
WHERE abbrName LIKE '".$_GET['team']."'
ORDER BY rosterId DESC
";
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.