php - 使用 PHP CodeIgniter 对数组推送进行排队
问题描述
我在同时使用 2 个数组推送时遇到问题。当我将 10 个元素推入第一个数组,将 20 个元素推入第二个数组时,它运行良好。但是当我在第一个数组上推送 1000 个元素时,第二个数组不会推送。
这是我的代码:
public function save() {
extract($_POST);
$first_array = array();
$second_array = array();
// This array contains 1000 elements to push
foreach($data as $key) {
$data3 = array(
'LOCATION_ID' => $key,
'TRX_ID' => $id,
);
array_push($first_array,$data3);
}
// This array contains 20 data
for($i = 0; $i < $total ; $i++) {
$data4 = array(
'CONDITION' => $CONDITION[$i],
'TRX_ID' => $id
);
array_push($second_array,$data4);
}
$insert_first = $this->db->insert_batch('LOCATION',$first_array);
$insert_second = $this->db->insert_batch('CONDITION',$second_array);
if($insert_first) {
if($insert_second) {
$message = array(true,'success');
} else {
$message = array(false,'failed');
}
} else {
$message = array(false,'failed');
}
echo json_encode($message);
}
<form method="POST" action="<?php echo base_url()?>admin/transaction/save">
<div class="form-group">
<label>Location</label>
<select name="LOCATION[]" multiple class="form-control">
<?php foreach($LOC as $key) : ?>
<option value="<?php echo $key['id_location'] ?>"><?php echo $key['location_name'] ?></option>
<?php endforeach; ?>
</select>
</div>
<input type="hidden" name="id" value="<?php echo $id; ?>">
<input type="hidden" name="total" value="<?php echo count($CON); ?>">
<div>
<table>
<thead>
<tr>
<th>#</th>
<th>NAME</th>
<th>VALUE</th>
</tr>
<thead>
<tbody>
<?php $no = 1; foreach($CON as $value) : ?>
<tr>
<td><?php echo $no; ?></td>
<td><?php echo $value['condition_name'] ?></td>
<td><input type="number" name="CONDITION<?php echo $no; ?>"></td>
</tr>
<?php $no++ ;endforeach; ?>
</tbody>
</table>
</div>
</form>
有没有办法让两个数组都排队?我已经尝试移动数组推送的位置。所以第二个数组首先推送,然后是第二个推送的第一个数组。任何形式的帮助都非常感谢,谢谢..
解决方案
PHP,因为版本 5.3.9 有一个很好的小功能,它限制默认为 1000 的请求的大小(以输入变量的数量衡量)POST
。PHP(以及 codeigniter)忽略高于此的任何内容
如果您需要发布超过 1000 个变量(或认为您将来可能需要这样做),您需要更改变量php.ini
的值max_input_vars
。就像我说的,默认值是 1000,所以根据你的需要改变它。
即使在 PHP 5.3.9 之后的版本上,您也可能会max_input_vars
发现在php.ini
. 不要被它不存在的事实误导,因为无论如何它都会默认为 1000。只需创建它:)
推荐阅读
- wordpress - 如何使用带有 SwiftUI 的 Rest API 获取 Wordpress 帖子的帖子 ID
- xml - How to remove empty when grouping?
- c++ - 在 unique_ptr 中包装没有移动构造函数的 C++ 对象?
- azure-data-explorer - Kusto Query 将结果转换到另一个表中
- abap - 如何使用 CRM_ORDER_MAINTAIN 创建服务票证?
- java - 命令失败,错误 13(未授权):'未授权
- laravel - Laravel nova:如何从自定义字段表单设置输入值
- vue.js - Vue js 3 从生产环境中删除调试器和控制台日志
- python - 如何让这个 python 代码看起来更干净?
- xamarin - 如何关闭链接器?