2017-10-20 8 views
0

SQLクエリがあります。このクエリでは、インチをフィートに変換しています。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 

を行っていると私もどちらも1作品この

,replace (replace("'<feet>'" "'<inches>'", 
         "'<feet>'", height/12), 
       "'<inches>'", height % 12) AS playerHeight 

を試してみた。これは、単一引用符を二重になってる理解して何から、私は他のいくつかの組み合わせを試みましたが、少なくとも1行でエラーに終わってしまいます。 How do I escape a single quote in SQL Server?しかし、私は "mは、まだわからない私が間違ってやって

+0

あなたが代わる '使用している理由を私は理解していない()'最初のpでレース、元の文字列がリテラルの場合。文字列連結を使用するだけです。 – Barmar

+0

このお試しください:leagueTeamsを登録しようleagueRosters INNER FROM playerHeight、abbrName AS(高さ%12 ' '' '、 ''、高さ/ 12)、 ''(置き換え)を置き換えるSELECT * 「= $クエリをTEAMINFO AS rosterId DESC BY leagueRosters.teamId = teamInfo.teamId abbrName LIKE '$ _GET [チーム]' ORDER「ON。 – Nic3500

+0

注: 'mysqli'へのオブジェクト指向インタフェースは、コードの読み込みと監査をより簡単にするために、あまり冗長ではなく、古い「mysql_query」インタフェースとは容易に混同されません。手続き型スタイルに多額の投資をする前に、それを切り換える価値があります。例: '$ db = new mysqli(...)'と '$ db-> prepare(" ... ")'手続き型インタフェースはmysqli' APIが導入されたPHP 4時代のアーティファクトであり、コード。 – tadman

答えて

1

あなたはそれが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 
"; 
+0

よろしくお願いします。ヘルプと情報は大変ありがとうございます。私は自分でSQLを学習するのにわずか4週間しかかからず、私がここで見つけた情報のために 'replace'を使いました - [link] https://stackoverflow.com/questions/30078773/converting-a-number- 〜5フィートインチ% – ssx95351

関連する問題