几天前我开始学习学习PHP,并开始使用AJAX制作SQL数据库管理网页。我有一个错误的问题,如果我限制搜索少于所有[*]列的。
因此,我认为在通过AJAX发送的字符串上使用正则表达式并动态地将所需的表写回网页会相对容易。
我在理解如何根据preg_split()返回的数组进行循环时遇到了问题,附加到新字符串,然后将新字符串作为我可以写入sql表的新表echo出来。
这是我无法理解的位
$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;
?>
根据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];
}