使用存储过程在mysql中插入数组值

时间:2013-11-18 09:05:48

标签: php mysql arrays stored-procedures

我有一个表,我想在其中插入多行具有php数组的值,现在我无法弄清楚如何在存储过程中传递数组。

示例 - :我有一个名为['sqlite','mysql','sql']

的php数组

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

3 个答案:

答案 0 :(得分:2)

您可以使用列表传递字符串,并使用预准备语句来运行查询,例如 -

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 =' \' apple \',' banana \'' CALL GetFruits(@fruitArray);

答案 1 :(得分:1)

SELECT *

FROM fruits

WHERE FIND_IN_SET ( name, fruit_array );

希望这会对你有帮助..

答案 2 :(得分:0)

另一种解决方案:

  

使用foreach循环:

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

//insert query
//Execute Query

更多帮助粘贴代码