0

前两天开始学习PHP,并开始使用AJAX制作SQL数据库管理网页。如果我将搜索限制为少于所有 [*] 列,我会遇到错误问题。

因此,我认为在通过 AJAX 发送的字符串上使用正则表达式并将所需的表动态写回网页会相对容易。

我在理解如何根据 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 回答