将数组从 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