Jquery ошибка таблицы данных недопустимый столбец, когда я использую имя столбца с пробелом - PullRequest
0 голосов
/ 26 мая 2020

Я использую таблицы данных с обработкой на стороне сервера . Я обновил ssp.class. php до используемого PDO_SQLSRV , поскольку я использую SQL Server, а не MySQL.

У меня есть несколько таблиц, включая поля с пробелом в имени, например «Имя клиента», «Список рассылки» ... когда я хочу просмотреть эти поля, я получаю эту ошибку

An SQL error occurred: SQLSTATE[42S22]: [Microsoft][ODBC Driver 17 for SQL Server][SQL Server]Invalid column name '[Customer Name]'

Похоже, что ssp class в таблицах данных не поддерживает пробелы в имени столбца, потому что даже со скобками array( 'db' => '[Customer Name]','dt' => 3 ) он не смог распознать столбец.

Вот моя страница:

<link href="https://cdn.datatables.net/1.10.21/css/jquery.dataTables.min.css" rel="stylesheet">
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet">

<table id="example" class="display" style="width:100%">
        <thead>
            <tr>
                <th>Country</th>
                <th>Territory</th>
                <th>Market</th>
                <th>Customer Name</th>
                <th>Order Number</th>
            </tr>
        </thead>
        <tfoot>
            <tr>
                <th>Country</th>
                <th>Territory</th>
                <th>Market</th>
                <th>Customer Name</th>
                <th>Order Number</th>

            </tr>
        </tfoot>
    </table>

    <script src="https://code.jquery.com/jquery-3.5.1.js"></script>
    <script src="https://cdn.datatables.net/1.10.21/js/jquery.dataTables.min.js"></script>
    <script src="https://cdn.datatables.net/1.10.21/js/dataTables.bootstrap.min.js"></script>

    <script type="text/javascript">

    $(document).ready(function() {
    $('#example').DataTable( {
        "processing": true,
        "serverSide": true,
        "ajax": "server_processing.php"
    } );
    } );    

    </script>

и server_processing. php как показано ниже:

<?php

$table = 'Orders';

$primaryKey = 'id';

$columns = array(
    array( 'db' => 'Country','dt' => 0 ),
    array( 'db' => 'Territory','dt' => 1 ),
    array( 'db' => 'Market','dt' => 2 ),
    array( 'db' => '[Customer Name]','dt' => 3 ),
    array( 'db' => '[Order Number]','dt' => 4 )
);

$sql_details = array(
    'user' => 'xxxx',
    'pass' => 'xxxx',
    'db'   => 'xxxx',
    'host' => 'xxxx'
);

require( 'ssp.class.php' );

echo json_encode(
    SSP::simple( $_GET, $sql_details, $table, $primaryKey, $columns )
);

?>

Я использую этот класс ssp . Кто-нибудь, пожалуйста, использовал этот ssp с SQL сервером и с пробелами в имени столбца? Таблицы обслуживаются другой командой, и у нас есть доступ только для чтения, в качестве текущего решения мне пришлось создать представление и дать новый псевдоним столбцам с пробелом в его имени, но для изменения всех таблиц потребовалась бы длительная ручная работа. Спасибо.

...