当前位置:  开发笔记 > 编程语言 > 正文

PHP + MYSQLI:使用预准备语句的变量参数/结果绑定

如何解决《PHP+MYSQLI:使用预准备语句的变量参数/结果绑定》经验,为你挑选了1个好方法。

在我即将结束的项目中,我已经为PHP编写并实现了一个对象关系映射解决方案.在怀疑者和梦想家喊出"怎么样?"之前,放松一下 - 我还没有找到一种方法来进行后期的静态绑定工作 - 我只是以最好的方式解决它.

无论如何,我目前没有使用预准备语句进行查询,因为我无法想出一种方法将可变数量的参数传递给bind_params()bind_result()方法.

你问,为什么我需要支持可变数量的参数?因为我的模型的超类(将我的解决方案想象为hack-up-PHP ActiveRecord wannabe)是定义查询的地方,所以find()方法例如不知道绑定需要多少参数.

现在,我已经考虑构建一个参数列表并将字符串传递给eval(),但我不太喜欢这个解决方案 - 我宁愿只实现自己的安全检查并传递语句.

有没有人有任何关于如何完成这项工作的建议(或成功案例)?如果你可以帮助我解决这个第一个问题,也许我们可以解决结果集的绑定(我怀疑会更困难,或者如果它涉及初始查询以确定表结构,则至少需要更多资源).



1> John Downey..:

在PHP中,您可以通过使用将可变数量的参数传递给函数或方法call_user_func_array.方法的示例是:

call_user_func_array(array(&$stmt, 'bindparams'), $array_of_params);

将调用该函数,并将数组中的每个成员作为自己的参数传递.

推荐阅读
sx-March23
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有