查询SQL表格列名称推送到PHP数组1每个索引列

时间:2017-05-10 22:23:35

标签: php sql

这是我正在使用的代码:

$columnQuery = "select COLUMN_NAME from INFORMATION_SCHEMA.COLUMNS where TABLE_NAME = 'file_system_profiles'";
$getColumns = sqlsrv_query($conn, $columnQuery);
while ($row = sqlsrv_fetch_array($getColumns)) {
    $tempColumns = ($row[0] . PHP_EOL);
    $selectColumns = preg_split('/\s+/', $tempColumns);
    echo $selectColumns[0];
}

问题是$ getColumns确实以我的列名结尾,但它是一个长字符串,每个列名之间没有分隔符。这就是我尝试使用PHP_EOL将它们用$ tempColumns中的空格分隔的原因。如果我回显$ tempColumns,我确实看到所有列名都用空格分隔。然后,当我在space / tabs / new行上执行preg_split时,我认为我最终会得到$ selectColumns数组,每个索引中都有1个列名。不幸的是,当我回显$ selectColumns [0]时,我仍然得到一个没有空格的长字符串。

我知道对于任何回答的人来说可能会有更多的工作,但是如果你能给我一个线索,为什么我的代码除了你提供的任何代码之外都不起作用我会感激更深刻的理解。

1 个答案:

答案 0 :(得分:0)

\s正则表达式与换行符匹配,因此当您使用preg_split()时,您将丢弃已连接的换行符。

但这些都不是必需的,只需将每个结果打印在不同的行上,使用<br>作为HTML中的换行符。

$columnQuery = "select COLUMN_NAME from INFORMATION_SCHEMA.COLUMNS where TABLE_NAME = 'file_system_profiles'";
$getColumns = sqlsrv_query($conn, $columnQuery);
    while ($row = sqlsrv_fetch_array($getColumns)) {
        echo $row['COLUMN_NAME'] . "<br>";
    }
}