【问题标题】:Inserting array values in mysql using stored procedure使用存储过程在mysql中插入数组值
【发布时间】:2013-11-18 09:05:48
【问题描述】:

我有一个表,我想在其中插入多行,其中包含来自 php 数组的值,现在我不知道如何在存储过程中传递数组。

示例-:我有一个名称为 ['sqlite','mysql','sql'] 的 php 数组

现在我想要将此数组发送到存储过程并循环遍历数组,一次取一个值并插入到数据库表中。

【问题讨论】:

  • 到目前为止你尝试了什么?

标签: php mysql arrays stored-procedures


【解决方案1】:

您可以在列表中传递一个字符串并使用准备好的语句来运行查询,例如-

DELIMITER $$

CREATE PROCEDURE GetFruits(IN fruitArray VARCHAR(255))
BEGIN

  SET @sql = CONCAT('SELECT * FROM Fruits WHERE Name IN (', fruitArray, ')');
  PREPARE stmt FROM @sql;
  EXECUTE stmt;
  DEALLOCATE PREPARE stmt;

END
$$

DELIMITER ;

使用方法:

SET @fruitArray = '\'苹果\',\'香蕉\''; 调用 GetFruits(@fruitArray);

【讨论】:

【解决方案2】:
SELECT *

FROM fruits

WHERE FIND_IN_SET ( name, fruit_array );

希望对你有所帮助..

【讨论】:

    【解决方案3】:

    另一种解决方案:

    使用 foreach 循环:

    foreach(condition)
    {
      //Create insert query string
    }
    
    //insert query
    //Execute Query
    

    更多帮助粘贴代码

    【讨论】:

    • @leandronn 我刚刚提出了另一种在单个查询中插入多个值的解决方案。请检查已编辑的答案。
    猜你喜欢
    • 1970-01-01
    • 2014-01-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-03
    • 1970-01-01
    • 2012-01-23
    • 1970-01-01
    相关资源
    最近更新 更多