繁体   English   中英

尝试使用基于SQL查询的PHP动态编写表

[英]Trying to dynamically write a table with PHP based on SQL Query

我几天前开始学习学习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;

?>

根据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];
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM