嗨,我有一个关于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
)
现在的问题是,我只收到一个数据插入,而不是上面的参数如何插入。这里可能缺少什么?谢谢
答案 0 :(得分: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);
答案 1 :(得分:0)
找到解决上述问题的方法。
foreach($params['banks'] as $key=>$value){
$query = $db->getQuery( true );
$columns = array('query_type','query_name','search_id');
$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();
}
感谢Orangepill
答案 2 :(得分:0)
创建db $ db = JFactory :: getDbo();
的对象 public function setItems($params,$type)
{
$search_id = 1;
$db = JFactory::getDbo();
$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();
}
}