Получение ошибки при выполнении запроса для имени столбца таблицы сервера SQL с японскими символами - PullRequest
0 голосов
/ 25 апреля 2018

Я создаю веб-приложение на PHP для отображения данных с сервера Microsoft SQL. У меня есть таблица с именами столбцов на японском языке. Я хочу получить данные столбца, но получаю эту ошибку.

Неопределенный индекс: 基準 日 時

Примечание: я могу получить данные для имен столбцов с английским языком.

Пожалуйста, помогите мне решить проблему.

вот исходный код:

    $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);
?>

Ответы [ 2 ]

0 голосов
/ 25 апреля 2018

Имена японских столбцов - не лучший способ справиться со столбцами БД. Вы можете попытаться получить их, используя числовой индексный номер столбца, или изменить оператор выбора, чтобы переименовать имя столбца при его выборе.

захват с числовым индексом:

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]

это временные исправления.

0 голосов
/ 25 апреля 2018
$sql = "SELECT which column you want. write name here of the column FROM tablename here";

вместо

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