Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何验证数据以确保使用PHPExcel在数据库中只上载允许的字符串_Php_Phpexcel - Fatal编程技术网

如何验证数据以确保使用PHPExcel在数据库中只上载允许的字符串

如何验证数据以确保使用PHPExcel在数据库中只上载允许的字符串,php,phpexcel,Php,Phpexcel,我正在构建一个上传功能,将客户端数据导入codeigniter应用程序中的MySQL数据库。为了打开、读取和处理从excel到MySQL数据库的数据,我正在使用PHPExcel库 上传的一个要求是脚本只允许PHPExcel读取列中的某些值。若提供了任何不允许的值,则脚本应拒绝该行 例如:我有一个名为panStatus(客户机表中的列)的属性。我需要确保上传的excel文件只包含panStatus的两个可能值中的一个,即“公司”或“非公司”。表中不应插入任何其他内容 我已经想出了以下代码,但我相信

我正在构建一个上传功能,将客户端数据导入codeigniter应用程序中的MySQL数据库。为了打开、读取和处理从excel到MySQL数据库的数据,我正在使用PHPExcel库

上传的一个要求是脚本只允许PHPExcel读取列中的某些值。若提供了任何不允许的值,则脚本应拒绝该行

例如:我有一个名为panStatus(客户机表中的列)的属性。我需要确保上传的excel文件只包含panStatus的两个可能值中的一个,即“公司”或“非公司”。表中不应插入任何其他内容

我已经想出了以下代码,但我相信会有更好的方法来做同样的事情

public function client_bulk_do_insert()
    {
        $result = $this->client_model->get_list_of_client_uploaded_files();
        if($result)
        {
            $this->load->library('PHPExcel');
            foreach ($result->result_array() as $row) {
                $file_id = $row['id'];
                $file_name = CLIENT_UPLOAD_FILE_PATH.$row['file_name'];
                $data = excelToArray($file_name);
                foreach ($data as $key => $actualArray) {
                    //perform validations
                    if(company_check($actualArray['nameClient']))
                    {
                        $error[] = 'Invalid Client Name or Client Already Present';
                    }

                    $pan_status = array('Company','Non Company');
                    $youtube_verified = array('No','Yes');
                    $client_status = array('NA','Partnership', 'Prop','Private Limited','Individual');
if(!array_search($actualArray['panStatus'],$pan_status))
                    {
                        $error[] = 'Invalid Pan Status Value';
                    }

                    if(!array_search($actualArray['youtubeVerified'],$youtube_verified))
                    {
                        $error[] = 'Invalid Youtube Verified Value';
                    }

                    if(!array_search($actualArray['clientStatus'],$client_status))
                    {
                        $error[] = 'Invalid Client Status Value';
                    }

                    $result = $this->client_model->create_new_client($data);

                }

            }
        }
    }

请注意,在实际操作中,我必须在22列上传的表单上进行验证,至少输入1500行。PHPExcel中是否有内置的支持来执行此类验证?

我不理解这个问题,如果有22个检查和1500行,有效性检查的总数将是22*1500,没有办法解决。我不理解这个问题,如果有22个检查和1500行,有效性检查的总数将是22*1500,这是没有办法的。