0

私は列 bedroomssvo から最初の文字だけを取得しようとしていますが、PHP のこのクエリで完全に役立つ「無効な構文」を取得しています。` with ' などを切り替えてみましたが、それでも同じ結果が得られます...何が間違っているのでしょうか?

$query = @mysql_query("SELECT mlnum, , `.substr('bedroomssvo',0,1).`,totalfullbaths, arealiving FROM naples_Single_Family);
4

5 に答える 5

4

しないでください ( @...)。有効なエラーを抑制しています。

関数の使用も停止する必要がありmysql_ます。それらはもはや保守されておらず、公式に非推奨です赤いボックスが見えますか? 代わりにプリペアド ステートメントについて学び、 PDOまたはMySQLiを使用してください。この記事は、どちらを決定するのに役立ちます。

あなたはそのように使いたいですSUBSTR(位置1は1、ではありません0):

SELECT mlnum, 
       Substr(bedroomssvo, 1, 1) AS bedroomssvo, 
       totalfullbaths, 
       arealiving 
FROM   naples_single_family 

ドキュメンテーション

于 2013-02-22T19:44:11.327 に答える
3

したがって、ここにいくつかの問題があります。

SELECT mlnum, , `.substr('bedroomssvo',0,1).`,totalfullbaths, arealiving 
    FROM naples_Single_Family
  • mlnum の後に余分なコンマがあります。
  • .substr('bedroomssvo',0,1).「列.substr('bedroomssvo',0,1).」を意味しますが、それは必要ないと思います。
  • substrSQLではsubstring最初の文字インデックスを 1 にします (ほとんどの言語ではインデックスは 0 です)。

問題は、'bedroomssvo'(常に'b') の部分文字列を取得しようとしているのか、それとも という名前の列の部分文字列を取得しようとしているのbedroomssvoかということです。私は後者の場合だと思います。そのクエリは次のようになります。

SELECT mlnum, substr(bedroomssvo,1,1) as bedroomssvo_first_char,totalfullbaths, 
     arealiving FROM naples_Single_Family

引用符、ティック、および.'sをすべて削除したことに注意してください。これは、何もエスケープする必要がなく、列名を取り巻くおかしなビジネスが必要ないためです。(余談:as bedroomssvo_first_charはオプションですが、出力が少し理解しやすくなります)。

一方、PHP でアクセスできる変数の部分文字列を取得する場合は、次のようにします。

"SELECT mlnum, '{$yourString[0]}',totalfullbaths, arealiving 
    FROM naples_Single_Family"
于 2013-02-22T19:47:21.667 に答える
2

引用符の代わりにバッククォートを使用しているので、mysql関数をエスケープする必要はありません。これは機能します。

$query = mysql_query("SELECT mlnum, SUBSTR(bedroomssvo,1,1),totalfullbaths, arealiving FROM naples_Single_Family);
于 2013-02-22T19:48:01.180 に答える
1

使用する

SUBSTR(column_name,1,x)

どこ:

  1. column_name(フィールド名)
  2. 1:開始インデックス:mysqlでは開始インデックスは1ではありません
  3. x =整数(長さ)

使用する:

SUBSTR('text',1,x)

テキストの場合

REF:SUBSTR()

于 2013-02-22T19:48:58.943 に答える
1

これを試して

 SELECT mlnum , substr('bedroomssvo',0,1) ,totalfullbaths, arealiving FROM naples_Single_Family

bedroomssvo列の場合は、そのように使用します

SELECT mlnum , substr(bedroomssvo,1,1) ,totalfullbaths, arealiving FROM naples_Single_Family
于 2013-02-22T19:44:13.027 に答える