php - 仅当输入文本不为空时才插入 mysql - Codeigniter

标签 php mysql codeigniter insert

我正在尝试将一些数据插入表中,但我只想在变量不为空时插入。

下面是我的模型代码。

$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);',

最佳答案

我会在您的情况下使用以下语法:

INSERT INTO todo
SET
    one='val1',
    two='val2',
    three='val3'

您可以更轻松地在数组中设置 field=value 对,并通过内爆添加到语句中。

添加了以下示例:

        if( !empty($one_input)){ 
            $query_data[]= "one='$one_input'";
        }
        if( !empty($two_input)){ 
            $query_data[]= "two='$two_input'";
        }
        if( !empty($three_input)){
            $query_data[]= "three='$three_input'";
        }

        $query = "INSERT INTO todo SET " . implode(",", $query_data); 

关于php - 仅当输入文本不为空时才插入 mysql - Codeigniter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22468571/

相关文章:

php - 在 php 中不能有名为 default 的函数

php - 需要使用此代码 woocommerce wordpress 按 ID 显示某些类别

php - 未设置登录过程变量

mysql - 从 SQL 查询中排除记录

php - 在PHP中,如何在foreach循环中播放数据库中的音频?

javascript - 使用 Mailchimp API 3.0 获取并显示成员(member)状态(或错误)

javascript - Codeigniter:在控制台上未获得第二次结果,但 Ajax 并未失败

php - 创建简单的 Codeigniter 库

php - 如何匹配mysql中的逗号分隔值并获取值

php - 使用 CodeIgniter 从 2 个表中选择 SQL