且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

如何使用codeigniter动态创建数组中的值并将其作为单独的列爆炸

更新时间:2022-12-12 13:58:01

尝试修复您的SQL查询语法并修改您的代码,如下所示:

Try to repair your sql query syntax and modify your codes like this :

$checkedfileds = $_POST['CheckedFileds'];
$qry = "ALTER TABLE `pm1asset_dynamic_fields` ";
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";
    }
    end($checkedfileds);
    // use (;) for the last row, otherwise use (,)
    if ($key === key($checkedfileds)) {
        $qry .= ";";
    } else {
        $qry .= ", ";
    }
}
$this->db->query($qry);

这将生成如下查询:

ALTER TABLE `pm1asset_dynamic_fields` 
ADD COLUMN `add_to_title` int(11) NOT NULL,
ADD COLUMN `add_to_col2` varchar(255) NOT NULL,
ADD COLUMN `add_to_col3` varchar(255) NOT NULL;