我正在使用where子句进行简单查询,该子句在具有datables的名称中查找LIKE。
这是我的结构
$lName = strtoupper($_GET['lname']);
// DB table to use
$table = 'alx80';
// Table's primary key
$primaryKey = 'casnum';
$whereResult = " WHERE ptynam LIKE '%$lName%' ";
// Array of database columns which should be read and sent back to DataTables.
// The `db` parameter represents the column name in the database, while the`dt`
// parameter represents the DataTables column identifier. In this case simple
// indexes
$columns = array(
array( 'db' => 'casnum', 'dt' => 'casnum' ),
array( 'db' => 'castyp', 'dt' => 'castyp' ),
array( 'db' => 'castds', 'dt' => 'castds' ),
array( 'db' => 'ptynam', 'dt' => 'ptynam' ),
array( 'db' => 'ptytyp', 'dt' => 'ptytyp' ),
array( 'db' => 'istat', 'dt' => 'istat' ),
);
// SQL server connection information
$sql_details = array(
'user' => 'kiju',
'pass' => 'jkiuju$hhg2',
'db' => 'mysql',
'host' => 'localhost'
);
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* If you just want to use the basic configuration for DataTables with PHP
* server-side, there is no need to edit below this line.
*/
require( '../DataTables-1.10.5/examples/server_side/scripts/ssp.class.php' );
echo json_encode(
//SSP::simple( $_GET, $sql_details, $table, $primaryKey, $columns )
SSP::complex ( $_GET, $sql_details, $table, $primaryKey, $columns, $whereResult )
);
当我运行此操作时,我收到此错误
DataTables警告:table id = example - 发生SQL错误:SQLSTATE [42000]:语法错误或访问冲突:1064 SQL语法中有错误;检查与您的MySQL服务器版本相对应的手册,以便使用正确的语法,以便在附近使用' WHERE ptynam ='%SMITH%'
ORDER BY casnum
ASC
限制0,100和#39;在第3行
精细。
我一直试图找到工作地点,所以我使用// SSP :: simple($ _GET,$ sql_details,$ table,$ primaryKey,$ columns,$ where),并且它工作正常完善。除非我无法搜索数据表,因为我已经定义了where子句。
所以我的问题是,如何将数据表服务器端脚本与where子句一起使用,为什么我会收到此错误?
答案 0 :(得分:1)
其他任何有这个问题的人,当你使用复杂的功能时,你必须采取" WHERE"在$ whereResult中,它将起作用