如何解决数据库从 MySQL 迁移到 SQL Server 后 AJAX 不起作用未定义索引
我正在将数据库从 MysqL 迁移到 MS sql Server 2012,用于现有的 Web 应用程序。
数据迁移成功,与旧数据匹配。
问题是我必须在使用数据库的 PHP 应用程序中编辑一些 sql 语句。
已成功建立从 PHP-application 到新 MS sql Server 的连接。但是当我尝试通过 ajax 发送查询时,我总是收到此错误:
遇到 PHP 错误 严重性:注意
消息:未定义索引:filter_18
这是我使用的ajax代码:
$.ajax({
url: global_url+"test/getTest",type: 'POST',dataType: 'json',data: {
filter_1 : filter_1,filter_2 : filter_2,filter_3 : filter_3,filter_4 : filter_4,filter_5 : filter_5,filter_6 : filter_6,filter_7 : filter_7,filter_8 : filter_8,filter_9 : filter_9,filter_10 : filter_10,filter_11 : filter_11,filter_12 : filter_12,filter_13 : filter_13,filter_14 : filter_14,filter_15 : filter_15,filter_16 : filter_16,filter_17 : filter_17,filter_18 : filter_18
},async: true,success: function(data) {
$("#test").html(data.html);
$("#amountofx").html("");
if(data.amountofx_all != amountofx){
$("#amountofx").html(data.amountofx_all +" von "+data.amountofx);
}
else {
$("#amountofx").html(data.amountofx);
}
mleh = $(".x:nth-of-type(1)").height();
$(".btn_show_x").height(mleh);
$("#pagenr_data").html(data.pagenr);
if (data.pagenr == "") {
$("#pagenr_data").hide();
}
else {
$("#pagenr_data").show();
}
},error: function(requestObject,error,errorThrown) {
alert("Fehler beim Auslesen der Maßnahme.");
hideOverlay();
}
});
//这里我尝试修改sql语句,以便每个站点只显示100个对象
$starting_from = $_POST['filter_18'] * CONSTANT_WITH_THE_VALUE_100 - (CONSTANT_WITH_THE_VALUE_100 - 1);
$end_at = $_POST['filter_18'] * CONSTANT_WITH_THE_VALUE_100 - 1;
//$fetch_next = CONSTANT_WITH_THE_VALUE_100 +1;
$offset = $starting_from -1;
if ( $_POST['filter_18'] > 1) {
$sql_offset = " OFFSET " . $offset . "ROWS";
} else { $sql_offset = " OFFSET 0 ROWS";}
$sql_offset .= " FETCH NEXT " .CONSTANT_WITH_THE_VALUE_100. " ROWS ONLY";
请记住,这段代码不是我写的,我只是需要更改这段代码片段中的每个变量才能在此处发布。
最让我困惑的是,该应用程序与旧的 MysqL 服务器一起工作,除了一些 sql 语句之外,我没有更改任何语法。错误必须在这个 ajax 或配置文件等中。sql 语句在没有 ajax 的情况下工作我也检查过。控制器/模型和ajax之间的连接也有效。
我使用的是 codeigniter 和 jquery 3.5.1。
更新:难道我必须包含像 JSON.parse(data); 这样的东西吗?到 AJAX 语句?
我真的很感激任何帮助,因为此刻我完全迷失了,不知道如何解决这个问题。非常感谢。
解决方法
A PHP Error was encountered Severity: Notice
Message: Undefined index: filter_18
当缺少 PHP 数组时会出现此通知。例如,您将在 PHP 中设置一个数组,如下所示:
$phpArr = [
'filter_1' => 'filter','filter_2' => 'other_filter'
.
.
'filter_17' => 'final_filter'
];
此错误字面意思是 $phpArr
没有在其定义中设置键(也称为“索引”)。如果您的 PHP 配置中的错误设置为抛出 E_ALL
,那么这将导致异常。但是,对于大多数应用程序,这只会显示为警告,并且当出现此错误时,PHP 实际上不会失败。至于您为什么要到达它,可能与您作为循环传入的数据有关。您的服务器端代码没有第 18 个过滤器,它可能与您最近的迁移几乎没有关系。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。