數據表的class.php並獲得一個錯誤,如下數據表使用ssp.class.php放棄語法錯誤的警告
錯誤 :
An SQL error occurred: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'ORDER BY request_id ASC↵ LIMIT 0, 10' at line 4
我的服務器端代碼如下命名爲請求list.php的
<?php
$inc_files = array("ph_utils");
require_once ('autoload.php');
$db = new db();
$table = 'wallet_load_request';
$primaryKey = 'request_id';
$columns = array(
array('db' => 'request_id', 'dt' => 0),
array('db' => 'request_date', 'dt' => 1),
array('db' => 'trans_mode', 'dt' => 2),
array('db' => 'trans_amt', 'dt' => 3),
array('db' => 'request_status', 'dt' => 4),
array('db' => 'org_id', 'dt' => 5)
);
$sql_details = array(
'user' => PH_DB_USER,
'pass' => PH_DB_PSWD,
'db' => PH_DB,
'host' => PH_DB_HOST
);
require_once('ssp.class.php');
$filterByStaus = isset($_REQUEST['filter_by_status']) ?
$_REQUEST['filter_by_status'] : "PENDING";
switch ($filterByStaus) {
case 'REJECTED':
$fixedFilter .= " AND request_status = 'REJECTED'";
break;
case 'APPROVED':
$fixedFilter .= " AND request_status = 'APPROVED'";
break;
default:
break;
}
$output = SSP::simple($_GET, $sql_details, $table, $primaryKey, $columns,
$fixedFilter);
foreach ($output['data'] as $i => $d) {
$request_id = $output['data'][$i][0];
$trans_amt = $output['data'][$i][3];
$request_status = $output['data'][$i][4];
$org_id = $output['data'][$i][5];
$output['data'][$i][0] = '<div class="text-center"><h4><span class="label label-success"> #'. $request_id .'</span></h4></div>';
if ($request_status == 'APPROVED') {
$output['data'][$i][4] = '<div class="text-center"><span class="label label-success"> APPROVED </span></div>';
$output['data'][$i][5] = '<div class="text-center"><button id="accept" type="button" class="text-center btn btn-success accept disabled" data-request_id=\'' . $request_id . '\' data-org_id=\'' . $org_id . '\' data-trans_amt=\'' . $trans_amt . '\'><i class="fa fa-ban"></i> ACCEPT</button></div>';
$output['data'][$i][6] = '<div class="text-center"><button id="reject" type="button" class="text-center btn btn-danger reject disabled" data-request_id=\'' . $request_id . '\'><i class="fa fa-ban"></i> REJECT</button></div>';
} else if ($request_status == 'REJECTED') {
$output['data'][$i][4] = '<div class="text-center"><span class="label label-danger"> REJECTED </span></div>';
$output['data'][$i][5] = '<div class="text-center"><button type="button" id="accept" class="text-center btn btn-success accept disabled" data-request_id=\'' . $request_id . '\' data-org_id=\'' . $org_id . '\' data-trans_amt=\'' . $trans_amt . '\'><i class="fa fa-ban"></i> ACCEPT</button></div>';
$output['data'][$i][6] = '<div class="text-center"><button type="button" id="reject" class="text-center btn btn-danger reject disabled" data-request_id=\'' . $request_id . '\'><i class="fa fa-ban"></i> REJECT</button></div>';
} else {
$output['data'][$i][4] = '<div class="text-center"><span class="label label-warning"> PENDING </span></div>';
$output['data'][$i][5] = '<div class="text-center"><button type="button" id="accept" class="text-center btn btn-success accept" data-request_id=\'' . $request_id . '\' data-org_id=\'' . $org_id . '\' data-trans_amt=\'' . $trans_amt . '\'><i class="fa fa-ban"></i> ACCEPT</button></div>';
$output['data'][$i][6] = '<div class="text-center"><button type="button" id="reject" class="text-center btn btn-danger reject" data-request_id=\'' . $request_id . '\'><i class="fa fa-ban"></i> REJECT</button></div>';
}
}
SSP::sendJson($output);
我jQuery代碼是如下請求list.js
var requestList = {
oTable: {},
init: function() {
requestList.oTable = $('#req_list').dataTable({
"processing": true,
"serverSide": true,
"columnDefs": [{className: "data_middle ", "targets": [0, 1, 2, 3, 4, 5, 6]}],
"columns": [null, null, null, {"orderable": false}, {"orderable": false}, {"orderable": false}, {"orderable": false}],
"ajax": {
"url": "web/request-list",
"data": function (d) {
return $.extend({}, d, {
"filter_by_status": $('#status').val(),
});
}
}
});
}
}
我的前端代碼是list.html
過濾方式: PENDING APPROVED REJECTED
<br>
<div class="row">
<div class="col-md-10 col-md-offset-1">
<table class="table table-bordered table-striped table-hover" id="req_list">
<thead>
<tr>
<th>Request ID</th>
<th>DATE</th>
<th>Mode</th>
<th class="text-center">AMOUNT</th>
<th class="text-center">STATUS</th>
<th class="text-center">ACCEPT</th>
<th class="text-center">REJECT</th>
</tr>
</thead>
<tbody>
</tbody>
</table>
</div>
</div>
運行代碼後頁面顯示警告爲DataTables warning:table id = req_list - 發生SQL錯誤:SQLSTATE [42000]:語法錯誤或訪問衝突:1064您的SQL語法中有錯誤;檢查第4行
,並在控制檯我得到的錯誤作爲
jquery.dataTables.min.js:39 Uncaught TypeError: Cannot read property 'length' of undefined
相當於你的MySQL服務器cersion爲正確的語法用戶附近的「ORDER BY REQUEST_ID ASC LIMIT 0,10」手動自定義SSP代碼如下下面鏈接
https://drive.google.com/open?id=0B-e2dOqifK3QOFFnRjhTYjhPQmM
您使用的是自定義SSP類嗎?在原始文件中沒有'sendJson()'函數,'simple()'函數只接受'5'參數。 –
是以前的開發者做了自定義的ssp文件 –