gpt4 book ai didi

php - MySQL 存储过程 PHP JSON 响应

转载 作者:行者123 更新时间:2023-11-29 00:24:19 26 4
gpt4 key购买 nike

我们一直在构建移动应用程序,PHP 扮演与 MySQL 数据库交互的服务层。我想更进一步,在 MySQL 数据库中实现存储过程来执行获取数据的任务。因此,删除任何 SQL来自 PHP 代码。

我确实在网上查了相关资料,但没找到多少。以下是我的一些担忧:

  • MySQL 存储过程可以返回用户定义的数据类型,如列表吗? (根据我可以搜索和发现的内容,似乎这些仅作为 IN 参数被接受)。
    • 返回整个 JSON 格式的字符串(是的,我知道这有点重)会对性能产生负面影响吗?

我对 PHP、MySQL 和移动应用程序开发也比较陌生。根据我过去使用 Oracle PL/SQL 的经验,我认为在数据库中编写查询真的很有优势。

最佳答案

存储函数返回一个标量值,它可以代表它需要的任何东西,给你的应用程序,存储过程可以通过它的 OUT 返回值。参数,但是,对我来说更有趣和有用的事实是,过程可以使用一个或多个无界 SELECT 将一个或多个结果集返回给客户端。程序主体中的语句。无界SELECTSELECT它没有嵌套在子查询中,不是游标声明的一部分,也不是 SELECT ... INTO 的一部分声明:

MySQL supports a very useful extension that enables the use of regular SELECT statements (that is, without using cursors or local variables) inside a stored procedure. The result set of such a query is simply sent directly to the client. Multiple SELECT statements generate multiple result sets, so the client must use a MySQL client library that supports multiple result sets.

http://dev.mysql.com/doc/refman/5.6/en/stored-routines-syntax.html (supported in all 5.x releases)

对于您的客户来说,这些看起来就像您发出 SELECT 时所看到的一样。查询...因此您可以返回一个元素表,您的应用程序可以用 JSON 包装这些元素。

或者...还有一个 MySQL 用户定义函数的第 3 方库(服务器扩展,用 C/C++ 编写,不要与存储函数混淆)可以在服务器上生成 JSON。

https://github.com/mysqludf/lib_mysqludf_json

我要试试这个吗?是的,我会试试这个。在数据库服务器中组装 JSON 对象是最有效或最好的处理方式吗?这当然值得商榷,但我们可以整天思考和辩论这方面的理论方面,并且不会比我们开始时更接近解决方案。

关于php - MySQL 存储过程 PHP JSON 响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19681250/

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