javascript - 在将数据插入数据库之前验证数据

标签 javascript php mysql validation triggers

我知道如何使用客户端 (JAVASCRIPT)、服务器端 (PHP) 和数据库(MySQL 中的触发器)来验证数据。在处理大型应用程序进程时,我是否要验证所有这些方法中的数据?如果我使用这些方法来验证它是否慢?如果它是禁食的方法是什么?

JAVASCIPT

var data $("#input").val();

if(is_nan(data)){

}

PHP

if(empty($_POST['input'])){

}

MySQL

DELIMITER $$

CREATE TRIGGER example_before_insert
BEFORE INSERT ON registrations FOR EACH ROW
BEGIN
IF NEW.RG_Reg_NO NOT REGEXP '^[A-Z]{3}\/[A-Z]-\d{6}$' THEN
SIGNAL SQLSTATE '45000'
SET MESSAGE_TEXT = 'The registration number you have entered is wrong';
END IF;
END;
$$

最佳答案

这是我的方法和观点:

始终需要客户端验证有两个原因:

  • 更好的用户体验
  • 避免往返服务器并减少负载(这是 Netscape 首先提出 javascript 的主要原因)。

始终需要服务器端验证有两个原因:

  • 安全!因为有人总是可以发布请求 (curl) 并绕过您的客户端验证。
  • 为禁用 js 的客户端提供回退(如今非常罕见)。

数据库验证:

  • 如果您必须避免编写服务器端代码的团队犯错,请使用这些错误。
  • 如果您的团队规模较小,并且编写服务器端代码的人能够实现所有业务逻辑而无需在另一级别进行双重检查,那么就不要使用它们。
  • 如果您更喜欢生产力和灵 active 而不是数据完整性,请不要使用它们。
  • 如果您的团队中没有真正知道如何处理 sql spaghetti 的人,那么请不要使用他们!
  • 如果您的应用程序太大以至于性能开始成为问题,那么在进入 SQL 意大利面条迷宫之前,您必须首先检查 NOSQL 解决方案是否满足您的要求。还聘请经验丰富的 dba。

欢迎补充更多原因或纠正我的错误。

关于javascript - 在将数据插入数据库之前验证数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20936858/

相关文章:

javascript - jQueryUI Selectable(如果元素 hasClass ui-selected)不起作用?

php - MySQL 查询结果未存储在数组中

php - 如何在 PHP 中使用 XMLReader?

c# - C# 应用程序中插入语句时 MySql ODBC 5.1 驱动程序的内存分配错误

mysql - 使用唯一索引限制 MySQL 中每列的行数

javascript - jQuery AJAX 调用 Vanilla JS,我错过了什么?

javascript - 在php中的一些记录后显示更多显示

javascript - Canvas 不在 JS/HTML 中绘制

php - 尝试获取父 ID 的父 ID

php 表单 - 多个下拉菜单