Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/295.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
Php 在从web上传的大量数据中验证现场数据的最佳实践是什么?_Php_Sql Server_Regex_Database - Fatal编程技术网

Php 在从web上传的大量数据中验证现场数据的最佳实践是什么?

Php 在从web上传的大量数据中验证现场数据的最佳实践是什么?,php,sql-server,regex,database,Php,Sql Server,Regex,Database,我会解释我在做什么 我需要使用受限数据验证文件,这些文件包含超过100k行,每个行有120个字段,每个字段根据定义的格式有自己的验证,例如“COD234-ES”和其他不同的格式 我需要将此数据从SQLServer2008中的数据库插入表中,但在插入之前,必须验证此数据 这些文件必须通过PHP框架中的web界面从客户端上传 关于性能和效率,我的问题是,哪种做法是最好的 首先在客户端进行验证,然后上传,首先上传到服务器,然后使用PHP进行验证,或者将批量插入上传到数据库,然后使用transact-s

我会解释我在做什么

我需要使用受限数据验证文件,这些文件包含超过100k行,每个行有120个字段,每个字段根据定义的格式有自己的验证,例如“COD234-ES”和其他不同的格式

我需要将此数据从SQLServer2008中的数据库插入表中,但在插入之前,必须验证此数据

这些文件必须通过PHP框架中的web界面从客户端上传

关于性能和效率,我的问题是,哪种做法是最好的

首先在客户端进行验证,然后上传,首先上传到服务器,然后使用PHP进行验证,或者将批量插入上传到数据库,然后使用transact-sql进行验证

经过多次验证,我原以为使用正则表达式,但在SQL中是l


我很感激有谁能指导我以最好的方式做到这一点。非常感谢

您希望尽早验证

如果可以在客户端上进行验证,请始终这样做,因为这样可以节省客户端网络带宽和服务器负载。您的客户端可能比服务器多


如果您可以在PHP中进行验证,这比在数据库中进行验证要好,因为在多个web服务器上分散负载并保留一个数据库通常比在多个服务器上共享数据库更容易。

简单的答案是,您必须在客户端和服务器上进行验证。
在客户端,因为它对用户太不友好,无法上传太多数据,然后收到错误消息。


但是,您需要在服务器上重新验证,因为坏人(或自动上传接口)可能会绕过您的客户端测试,故意或愚蠢地引入垃圾或恶意数据。

同意rjmunro和Quandary,在客户端和服务器端验证您的数据。使用transact-sql(或仅在测试阶段)重新评估不是很有用,但您可以在创建表时进行约束检查。

但也可以在您的一端进行验证。永远不要相信客户寄给你的东西。