我有一个表,我想在其中插入多行具有php数组的值,现在我无法弄清楚如何在存储过程中传递数组。
示例 - :我有一个名为['sqlite','mysql','sql']
现在我想要的是将此数组发送到存储过程并循环遍历数组,一次获取一个值并插入数据库表。
答案 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
更多帮助粘贴代码