Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/72.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 将id值附加到html表单元素以更快地访问是否安全,或者最佳做法是什么?_Php_Jquery_Mysql_Servlets_Jsp Tags - Fatal编程技术网

Php 将id值附加到html表单元素以更快地访问是否安全,或者最佳做法是什么?

Php 将id值附加到html表单元素以更快地访问是否安全,或者最佳做法是什么?,php,jquery,mysql,servlets,jsp-tags,Php,Jquery,Mysql,Servlets,Jsp Tags,例如,我有一个标签 <select> <option id="123">user1</option> <option id="124">user2</option> <option id="125">user3</option> <select> 例如,根据选择的选项,我进入用户详细信息表并获取金额 从所选选项中获取用户名,将其发送到servlet获取相应的userid,然后获取金额 通过将user

例如,我有一个
标签

<select>
<option id="123">user1</option>
<option id="124">user2</option>
<option id="125">user3</option>
<select>
例如,根据选择的选项,我进入用户详细信息表并获取金额

  • 从所选选项中获取用户名,将其发送到servlet获取相应的
    userid
    ,然后获取金额
  • 通过将
    userid
    保存在select标记的value属性中,直接将
    userid
    发送到servlet 把钱拿来

  • 我觉得第二种方法更快捷、更合理,但它安全吗?或者说,最好的方法是什么。网站运营商通常是如何更快地实现这一点的?

    您可能想使用JOIN:

    SELECT `user_detail`.`amount`
    FROM `user`
    INNER JOIN `user_details`
    ON `user`.`userid` = `user_details`.`userid`
    

    通常,您希望尽可能减少服务器操作量。步骤1需要在数据库中进行2次查找,而在第二步中只需要使用ID进行1次查找。因此,建议您在与服务器通信时使用对象的ID。毕竟,ID意味着标识符;)

    发送ID是可以的,但正如castis所指出的,如果用户ID可以更改,则应确保刷新select


    数据库访问成本很高,尤其是当它们位于不同的服务器上并且每次都必须打开连接时。无论如何,您都应该使用连接池。您可以做的是引入用户详细信息表并将其缓存在内存中,以便servlet访问。这完全取决于用户详细信息表的大小、更改频率以及服务器资源。这比击中DB要快得多

    您应该传递userid,这就是用户id的用途。用户是否正在更改自己的信息?:会话。用户是否正在更改其他人?:将其作为表单中的隐藏输入。
    SELECT `user_detail`.`amount`
    FROM `user`
    INNER JOIN `user_details`
    ON `user`.`userid` = `user_details`.`userid`