您好,我有一个基于 Joomla + php + Mysql 的应用程序。传递给函数的数组将被插入到 mysql 数据库中。以下是我的代码。
public function setItems($params,$type)
{
$search_id = 1;
$query = $db->getQuery( true );
$columns = array('query_type','query_name','search_id');
foreach($params['banks'] as $key=>$value){
$values = array($db->quote('bank'), $db->quote($value), $db->quote($search_id));
$query->insert($db->quoteName('#__bank_parameters'))
->columns($db->quoteName($columns))
->values(implode(',',$values));
$db->setQuery($query);
$db->query();
}
}
params输出如下:
Array
(
[0] => bank1
[1] => bank2
)
现在的问题是,我只插入了一个数据,而不是上面参数中的 2 个。这里可能缺少什么?谢谢
最佳答案
Insert
和 Columns
应该使用一次,Values
应该使用多次:
// Create the base insert statement.
$query
->clear()
->insert( $db->qn('#__bank_parameters'))
->columns( array('query_type', 'query_name', 'search_id'))
;
foreach ($params['banks'] as $key => $value)
{
$query->values(implode(', ', $db->q(array('bank', $value, $search_id))))
}
// Set the query and execute the insert.
$db->setQuery($query);
关于Php foreach数据插入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16704965/