我正在从json加载到关于我的Datatable表的服务器端处理。我有两个环境,一个用于测试和生产。它们具有相同的功能和数据库结构。当我在测试环境中测试新进程时,脚本会毫无问题地加载数据(5行)。
相同的脚本不会在生产环境中加载数据(1200行)。这条线有什么问题?
$sql.=" ORDER BY ". $columns[$requestData['order'][0]['column']]." ".$requestData['order'][0]['dir']." LIMIT ".$requestData['start']." ,".$requestData['length']." ";
的/ var /日志/ httpd的/ error_log中
[Wed Oct 19 14:55:37.724942 2016] [:error] [pid 28440] [client xxxxxx] PHP Notice: Undefined index: in search_user.php on line 31, referer: search_user.php
[Wed Oct 19 14:55:37.724958 2016] [:error] [pid 28440] [client xxxxxx] PHP Notice: Undefined index: order in search_user.php on line 31, referer: search_user.php
[Wed Oct 19 14:55:37.724971 2016] [:error] [pid 28440] [client xxxxxx] PHP Notice: Undefined index: start in search_user.php on line 31, referer: search_user.php
[Wed Oct 19 14:55:37.724983 2016] [:error] [pid 28440] [client xxxxxx] PHP Notice: Undefined index: length in search_user.php on line 31, referer: search_user.php
PHP
<?php
require "common.php" ;
$requestData= $_REQUEST;
$columns = array(
0 =>'id',
1 =>'email',
2 =>'nome',
3 =>'cognome',
4 =>'lingua',
5 =>'unsubscribe'
);
$sql = "SELECT id,email,nome,cognome,lingua,unsubscribe FROM newsletter_utenti";
$query=mysqli_query($db, $sql) or die();
$totalData = mysqli_num_rows($query);
$totalFiltered = $totalData;
$sql = "SELECT id,email,nome,cognome,lingua,unsubscribe ";
$sql.=" FROM newsletter_utenti WHERE 1=1";
if( !empty($requestData['search']['value']) ) {
$sql.=" AND ( id LIKE '".$requestData['search']['value']."%' ";
$sql.=" OR email LIKE '".$requestData['search']['value']."%' ";
$sql.=" OR nome LIKE '".$requestData['search']['value']."%' ";
$sql.=" OR cognome LIKE '".$requestData['search']['value']."%' ";
$sql.=" OR lingua LIKE '".$requestData['search']['value']."%' )";
}
$query=mysqli_query($db, $sql) or die("test");
$totalFiltered = mysqli_num_rows($query);
$sql.=" ORDER BY ". $columns[$requestData['order'][0]['column']]." ".$requestData['order'][0]['dir']." LIMIT ".$requestData['start']." ,".$requestData['length']." ";
//$sql.=" ORDER BY id desc LIMIT 0,30 ";
$query=mysqli_query($db, $sql) or die("errore order by");
$data = array();
while( $row=mysqli_fetch_array($query) ) {
$nestedData=array();
$nestedData[] = $row["id"];
$nestedData[] = $row["email"];
$nestedData[] = $row["nome"];
$nestedData[] = $row["cognome"];
$nestedData[] = $row["lingua"];
$nestedData[] = $row["unsubscribe"];
$data[] = $nestedData;
}
$json_data = array(
"draw" => intval( $requestData['draw'] ),
"recordsTotal" => intval( $totalData ),
"recordsFiltered" => intval( $totalFiltered ),
"data" => $data
);
echo json_encode($json_data);
?>
答案 0 :(得分:0)
解决!
默认情况下,MySQL实例未配置为期望UTF-8编码来自客户端连接,因此我使用了SET NAMES utf8
。
谢谢大家! :)