gpt4 book ai didi

php - MySQL 准备与 PHP mysqli 准备

转载 作者:行者123 更新时间:2023-11-29 06:06:58 25 4
gpt4 key购买 nike

我想知道 MySQL PREPARE/EXECUTE 子句和 PHP mysqli 准备/执行方法之间是否有任何区别?在预防注入(inject)方面是更好还是更差?

我很好奇,因为我正在编写一些数据库存储过程,其中的表和属性在编译时是未知的。我可以将数据写入静态,但查询有点复杂,并且会因为大量控制逻辑而使过程变得臃肿。但这让我开始思考这个问题,我只是想知道,当我只需要一个简单的语句时,使用动态 SQL 编写一个简短的过程还是仅使用 PHP 准备和绑定(bind)是否更好。

如果这是重复,我也深表歉意,当然欢迎链接到已经回答的问题。然而,我在谷歌上进行了一般搜索,并没有真正找到对此问题的具体答案。

最佳答案

PHP mysqli 是 PHP 中围绕 MySQL 的准备/执行功能的一层。

只要将来自用户的所有内容都填充到绑定(bind)变量中,两者都可以让您免受 SQL 注入(inject)的侵害。

准备好的语句,无论以哪种方式处理,都可以实现更高效的大容量操作。与 Oracle 等高价 DBMS 相比,MySQL 的效率提升不大,但仍然值得付出一切努力。

如果您需要在应用程序中将表名称作为“变量”,那没关系,但您不能将表名称视为绑定(bind)变量。因此,您需要对导致构建这些表名称的任何用户输入完全偏执。

关于php - MySQL 准备与 PHP mysqli 准备,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11101002/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com