我无法使用mysql获取where语句与服务器端脚本一起使用

时间:2015-03-09 16:47:03

标签: datatables

我正在使用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子句一起使用,为什么我会收到此错误?

1 个答案:

答案 0 :(得分:1)

其他任何有这个问题的人,当你使用复杂的功能时,你必须采取" WHERE"在$ whereResult中,它将起作用