Я использую таблицы данных с обработкой на стороне сервера . Я обновил 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 сервером и с пробелами в имени столбца? Таблицы обслуживаются другой командой, и у нас есть доступ только для чтения, в качестве текущего решения мне пришлось создать представление и дать новый псевдоним столбцам с пробелом в его имени, но для изменения всех таблиц потребовалась бы длительная ручная работа. Спасибо.