将数组从 php 传递到 MySQL 存储过程的最佳方法是啥?

Posted

技术标签:

【中文标题】将数组从 php 传递到 MySQL 存储过程的最佳方法是啥?【英文标题】:What is the best way to pass an array from php to MySQL stored procedure?将数组从 php 传递到 MySQL 存储过程的最佳方法是什么? 【发布时间】:2012-01-12 14:34:58 【问题描述】:

我希望将 id 列表从 php 传递到 mysql 存储过程,以便我可以加入该列表。我知道我不想将数组作为 csv 列表传递给 SP,但我不确定最佳做法是什么。

使用 SQL Server,我构建了一个 xml 对象,然后我将其传递给 SP 并加入到该对象中。这似乎有点矫枉过正,我从来没有真正确定这实际上是一个好主意。

有没有一种简单、有效的方法来获取 PHP 中数组中的 id 列表并将其传递给我可以在连接中使用的 MySQL SP?

我已经阅读了这个相关问题,但没有找到我正在寻找的答案: Parameterize an SQL IN clause

可以解决我的问题的一个相关问题是: PHP Array as input to Stored Procedure

但我希望使用存储过程而不是在 PHP 中构建 SQL 代码。

在这种情况下,最佳做法是什么?

【问题讨论】:

【参考方案1】:

将数组作为字符串参数传递,然后构造一个查询并使用prepared statements 运行它。

【讨论】:

是否可以扩展此答案。如果将数组作为 csv 传入,sql 会是什么样子?你会用'吗?字符,或者只是将 csv 连接到 sql 字符串?这种方式有没有什么顾虑,比如sql注入? 看看这个例子 - buysql.com/mysql/39-pass-array-to-stored-procedure.html

以上是关于将数组从 php 传递到 MySQL 存储过程的最佳方法是啥?的主要内容,如果未能解决你的问题,请参考以下文章

如何将输出参数从 vb.net 传递到 mysql 存储过程?

通过 AJAX 将数组从 php 传递到 javascript

如何给SQLSERVER存储过程传递数组参数

存储大量数据的最智能方法

如何将 mysql 数字类型数据从 php 传递到 Javascript 以作为字符串类型到达? [关闭]

如何将值的“数组”传递给我的存储过程?