如何使用codeigniter动态创建列


public function addDynFields()
{
$checkedfileds = $_POST['CheckedFileds'];
$qry = "ALTER TABLE `pm1asset_dynamic_fields` ";
//echo $qry;die;
foreach ($checkedfileds as $key => $value) 
{
$dynflds = strtolower($value);
$dynclmns = 'add_to'.'_'.$dynflds;
if ($value == 'Title') 
{
$qry .= "ADD COLUMN `".$dynclmns."` int(11) NOT NULL";
} 
else 
{
$qry .= "ADD COLUMN `".$dynclmns."` varchar(255) NOT NULL";
}
// use (;) for the last row, otherwise use (,)
if ($key === key($checkedfileds)) 
{
$qry .= ",";
} 
else 
{
$qry .= ";";
}
}
end($checkedfileds);
$this->db->query($qry);
}

在这里,我有一些代码可以使用codeigniter根据选中的复选框动态创建列,我尝试了这种方法,当我选中两个复选框时,它可以正常工作,但对于单个复选框,它不起作用,当我单击两个复选格时,它只会添加到表中。。我不知道为什么。有谁能帮我吗?任何帮助都将不胜感激。

这行有问题。

if ($key === key($checkedfileds){

我不知道确切的原因,我在这里测试了几种方法。

我的解决方案是

$n = count($checkedfileds);
$i = 0;
foreach ($checkedfileds as $key => $value) {
//and
if(++$i === $n) {
//if ($key === key($checkedfileds)) {

最新更新