执行查询 sql 服务器 table 带有日文字符的列名时出错

Getting error while executing the query for sql server table column name with japanese characters

我正在使用 PHP 构建 Web 应用程序以显示来自 Microsoft SQL 服务器的数据。我有一个 table,其中的列名是日语的。我想检索列数据,但出现此错误。

Undefined index: 基準日時

注意:我可以获取英文列名的数据。

请帮我解决这个问题。

这里是源代码:

    $serverName = "TestDB,1433"; //serverName\instanceName
    $connectionInfo = array( "Database"=>"Database123", "UID"=>"sa", "PWD"=>"Pass.124");
    $conn = sqlsrv_connect( $serverName, $connectionInfo);

    if( $conn ) {
    echo "Connection established.<br />";
    }
    else{
    echo "Connection could not be established.<br />";
    die( print_r( sqlsrv_errors(), true));
    }
    $sql="SELECT * from [Database123].[dbo].[LOG] ";
    $stmt=sqlsrv_query($conn,$sql);
    if ($stmt===false){
        die(print_r(sqlsrv_errors(), true));
        }

    echo "<table border='1'>
    <table class='table'>

    <thead>
    <tr>
    <th class='w'>Logon User</th>
    <th>Server Received Log Time</th>
    </tr>
    </thead>";

    while ($row =sqlsrv_fetch_Array($stmt,SQLSRV_FETCH_BOTH))
    {
    echo"<tbody>";
    echo"<tr>";
    echo"<td>".$row['基準日時']."</td>";
    echo"<td>".$row['日時']->format('Y-m-d h-m-s')."</td>";
    echo"</tr>";
    echo"</tbody>";
    }
    echo"</table>";

    sqlsrv_close($conn);
?>
$sql = "SELECT which column you want. write name here of the column FROM tablename here";

而不是

$sql="SELECT * from [Database123].[dbo].[LOG] ";

使用日文列名并不是处理数据库列的好方法。您可以尝试使用列的数字索引号来获取它们,或者更改 select 语句以在 selecting 时重命名列的名称。

用数字索引抓取:

echo"<td>".$row[x]."</td>";
where x is the column number depending on your query

重命名查询中的列:

echo"<td>".$row['columnName']."</td>";
SELECT 基準日時 as columnName, 日時 as columnName2, * (or other columns that you want) from [Database123].[dbo].[LOG]

这些是临时修复。