0

タイトルが少しわかりにくいことは知っていますが、例を次に示します。

弦:SELECT * FROM tbl_clients ORDER BY updatedOn LIMIT 0,50

私が欲しいのは、 FROMにすべてを取り、それを新しい文字列に入れることです。

したがって、結果の文字列は次のようになります。tbl_clients ORDER BY updatedOn LIMIT 0,50

彼をする方法はありますか?

4

5 に答える 5

3

さて、あなたはそのように爆発を使うことができます:

$string="SELECT * FROM tbl_clients ORDER BY updatedOn LIMIT 0,50";
$split=explode("FROM", $string, 2); 
//Restricts the split to 2 elements, i.e., everything after first occurrence goes in the second element

$result=$split[1];
于 2012-11-05T14:48:57.417 に答える
2

あなたは次のようなことを試すことができます

$mystring = "SELECT * FROM tbl_clients ORDER BY updatedOn LIMIT 0,50";
$spliter = "FROM ";
$splitstring = explode($spliter, $mystring);

$result = $splitstring[1];
于 2012-11-05T14:43:16.297 に答える
2

これを行うには数十の方法(stripos-substr、explode)などがありますが、preg_split()の方法は次のとおりです。

$sql = 
    "SELECT * FROM tbl_clients ORDER BY updatedOn " .
    "WHERE `from`='something' LIMIT 0,50";
$r = preg_split( "/FROM /i", $sql );
print_r( $r );

遊ぶための$r[1]を提供します:

Array
(
    [0] => SELECT * 
    [1] => tbl_clients ORDER BY updatedOn WHERE `from`='something' LIMIT 0,50
)

ステートメント全体を解析するなど、preg_splitが非常に便利な場合があります。

$r = preg_split( "/(SELECT)|(FROM)|(ORDER BY)|(WHERE)|(LIMIT)/i", $sql );

1つのステートメントであなたにきちんとした内訳を与えます:

Array
(
    [0] => 
    [1] =>  * 
    [2] =>  tbl_clients 
    [3] =>  updatedOn 
    [4] =>  field='something' 
    [5] =>  0,50
)
于 2012-11-05T14:49:51.643 に答える
1

文字列を分割FROMして配列を作成し、配列の1番目の要素にアクセスします。

$query_array = preg_split("/FROM /i", "SELECT a,b,d FROM tableA WHERE b=2", 1);
$table_and_clause = $query_array[1];  // "tableA WHERE b=2"...
于 2012-11-05T14:43:52.837 に答える
1

strpos()およびsubstr()の適切なマニュアルページを読むことができない人のために

$string = 'SELECT * FROM tbl_clients ORDER BY updatedOn LIMIT 0,50';
$pos = strpos($string, ' FROM ');
$substring = substr($string, $pos + strlen(' FROM '));
于 2012-11-05T14:50:31.000 に答える