Php 使用IN命令进行1000行更新时,Ajax请求Mysql数据更新失败

Php 使用IN命令进行1000行更新时,Ajax请求Mysql数据更新失败,php,mysql,ajax,Php,Mysql,Ajax,我有一个基于PHP的代码,它使用ajax更新MYSQL记录。对于500900,它可以正常工作,但是在1000,它失败了,我得到了一个与MYSQL无关的错误,看起来。开发是在本地主机、Xampp/Windows10平台、PHP7+上进行的。我通过Chrome疑难解答控制台得到的错误代码是: Notice: Undefined index: action in C:\xampp\htdocs\Data\anyCompany\notify\notify_ajax.php on line 54 该例程

我有一个基于PHP的代码,它使用ajax更新MYSQL记录。对于500900,它可以正常工作,但是在1000,它失败了,我得到了一个与MYSQL无关的错误,看起来。开发是在本地主机、Xampp/Windows10平台、PHP7+上进行的。我通过Chrome疑难解答控制台得到的错误代码是:

Notice: Undefined index: action in C:\xampp\htdocs\Data\anyCompany\notify\notify_ajax.php on line 54
该例程收集页面列表中的所有复选框,并将它们全部设置为1或0。用户可以选择他想要的数量。我本来打算把数字限制在1000,但似乎这个数字因为某种原因失败了

Ajax代码:

$.ajax({
    url:"/notify/notify_ajax.php",
    method:"POST",
    data:{action:'set_all_read_checkboxes',
          read_checkbox_id_array:read_checkbox_id_array, //array of database table id's to change
          read_all_set_checkbox_value:read_all_set_checkbox_value}, // value to change them to
    success:function(data){
          console.log(data);                  
    }
});
ajax处理文件/代码。它抱怨的索引作为第一个参数通过ajax传递。除了当我达到1000时,所有数量都可以正常工作

if($_POST['action'] == 'set_all_read_checkboxes' ){
    $read_checkbox_id_array = implode(",",$_POST['read_checkbox_id_array']); //array of database table id's to change
    $read_all_set_checkbox_value = $_POST['read_all_set_checkbox_value']; // value to change them to
    
    $sql = 'UPDATE emails SET web_viewed = ? WHERE email_id IN ('.$read_checkbox_id_array.')';
    $db->prepare($sql)->execute([$read_all_set_checkbox_value]);
    echo $read_checkbox_id_array.'/'.$read_all_set_checkbox_value;//for console feedback verification only
}
是否由于传输数据量过大而导致超时?我可以在我的代码中修改什么来适应这个问题,或者进一步测试这个问题,以获得关于实际问题的更多线索


提前感谢。

在您的
php.ini
中有一个
max\u input\u vars
设置,以防止拒绝服务攻击。默认设置为1000


“1000时失败”-1000什么?您发送给PHP的是1000个复选框/id吗?值是1000吗?请澄清问题。请记住,我们只知道您告诉我们和向我们展示的内容。这是更新Mysql记录。一个复选框id对应于数据库表中的一行。发送1000个id号,如“34254344654…”对应于数据库中更新的1000行id。希望这有意义?似乎奏效了。ini文件对此进行了注释,但为1000,因此它必须默认为1000。增加到10000,删除评论,效果不错!非常感谢。Fiouze的问题-php.ini文件说,“可以接受多少GET/POST/COOKIE输入变量。max\u input\u vars=10000”。正如您在代码中看到的,我的1000个id的数组是一个数组变量。那么,这不算是一个输入变量,在POST输入变量中传递,而不是1000个变量吗?这是个好问题。我认为它算作1个变量,但从您在上一个答案中所说的,似乎数组中的每个条目都算作1。也许有人能告诉你更多关于这件事