【发布时间】:2014-03-18 01:10:21
【问题描述】:
我正在尝试将一些数据插入表中,但我只想在变量不为空时插入。
下面是我的型号代码。
$query_str = "INSERT INTO todo (";
$query_and=array();
if( !empty($one_input)){
$query_and[]= 'one';
}
if( !empty($two_input)){
$query_and[]= 'two';
}
if( !empty($three_input)){
$query_and[]= 'three';
}
$query_str .= implode(', ', $query_and);
$query_str .= ') VALUES (?, ?, ?)';
$query_data=array();
if( !empty($one_input)){
$query_data[]= $one_input;
}
if( !empty($two_input)){
$query_data[]= $two_input;
}
if( !empty($three_input)){
$query_data[]= $three_input;
}
$query_dat = implode(', ', $query_data);
$query_dat .= ");";
$q = $this->db->query($query_str, $query_dat);
您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的 '' 附近使用正确的语法
INSERT INTO todo (一、二、三) VALUES ('val1, val2, val3);',
【问题讨论】:
-
我认为你需要在运行
$q = $this->db->query....之前检查变量是否为空 -
我有三个文本输入......如果它们不为空,则将值添加到数组中。我只是不知道如何格式化
$query_dat数组。如果我只有两个值,我会得到这个:INSERT INTO todo (one, two) VALUES ('one, two);',问题就在这里:('one, two);',。
标签: php mysql codeigniter insert