0

数日前に PHP の学習を開始し、AJAX を使用して SQL データベース管理 Web ページの作成を開始しました。検索をすべての [*] 列より少なく制限すると、エラーが発生します。

このため、AJAX を介して送信された文字列に対して正規表現を使用し、必要なテーブルを Web ページに動的に書き戻すのは比較的簡単だと思いました。

preg_split() から返された配列に基づいてループを実行し、新しい文字列に追加してから、SQL テーブルを書き込むことができる新しいテーブルとして新しい文字列をエコーアウトする方法を理解するのに問題があります。

これは私が理解できないビットです

$newString = 'this and ';

for ($i=0; $i < $arrayLength; $i++) { 
    $newString += $repArray[$i];
}

echo $newString;

コード内の正規表現は、'SELECT' ステートメントと 'FROM' ステートメントの間のテキストを取得し、空白を削除して、単語を配列に分割するだけです。何が起こっているかを示すさまざまなエコーがあります。

助けてくれてありがとう

よろしく、

アンドリュー

ここにアイデアをテストするための私の完全なphpコードがあります

<?php
$string = 'SELECT ID, username, password, firstName, IP FROM users WHERE ID > 100';
$pattern = '/SELECT (.*) FROM (.*)/i';
$replacement = '$1';
$replaced = preg_replace($pattern, $replacement, $string);

echo '<br> ' . $replaced;

$replaced2 = preg_replace('/\s/' , '', $replaced);

echo '<br> ' . $replaced2;

$repArray = preg_split('/,/', $replaced2, -1, PREG_SPLIT_NO_EMPTY);
echo '<br> ';
print_r($repArray);

$arrayLength = count($repArray);

echo '<br> Array length = ' . $arrayLength;

$newString = 'this and ';

for ($i=0; $i < $arrayLength; $i++) { 
    $newString += $repArray[$i];
}

echo $newString;

?>
4

1 に答える 1

1

preg_splitの php ドキュメントによると、結果の配列の要素は配列になり、最初の項目は必要な文字列になります。preg_split の結果は次のようになります。

Array
(
[0] => Array
    (
        [0] => ID
        [1] => 0
    )

[1] => Array
    (
        [0] => username
        [1] => 4
    )

[2] => Array
    (
        [0] => password
        [1] => 15
    )


[3] => Array
    (
        [0] => firstname
        [1] => 25
    )


[4] => Array
    (
        [0] => IP
        [1] => 36
    )
)

次に、配列の配列の最初の要素を取得できます。

for ($i=0; $i < $arrayLength; $i++) { 
    $newString .= $repArray[$i][0];
}
于 2013-01-12T21:53:04.897 に答える