Php 如何使用PDO连接将多个复选框存储到数据库中

Php 如何使用PDO连接将多个复选框存储到数据库中,php,Php,我有一个我无法解决的问题,我已经尝试了所有的方法,但是没有任何效果。问题是我想将多个复选框值存储到数据库中,存储到一列中,一条记录在其中。以下是我正在使用的表单代码: <label for="newsletter1">PRIMARIA:</label> <input type="checkbox" name="field021[]" value="1" /> 1 <input type="checkbox" name="field021[]" value

我有一个我无法解决的问题,我已经尝试了所有的方法,但是没有任何效果。问题是我想将多个复选框值存储到数据库中,存储到一列中,一条记录在其中。以下是我正在使用的表单代码:

<label for="newsletter1">PRIMARIA:</label>
<input type="checkbox" name="field021[]" value="1" /> 1
<input type="checkbox" name="field021[]" value="2" /> 2
<input type="checkbox" name="field021[]" value="3" /> 3
现在数据库中的单元格字段021中没有写入任何内容,我想做的是,能够在那里注册以逗号分隔的多个复选框。如果有人能帮忙,我们将不胜感激。谢谢你的意思是这样吗

$this->field021_commaseparated = implode(', ', $this->field021);
  • 假设
    $data
    ==
    $\u POST
  • 你不应该
    stripslashes()/strip\u tags()
    数组
    通常,当我使用不带数组1的代码时,它会将最后一个或最高值选择框放入数据库中。一旦我使用name=“field021”[]它就不会放任何东西。因为你做错了。。。当前您有一个数组,但不要这样对待它。这是$_postpublic function storeFormValues($params){//存储参数$This->u construct($params)}+1、@JohnSiniger,另外我会为每个数组元素/复选框设置一个指定的键;不要使用
    name=“field021[]”
    作为复选框的名称
    $this->field021_commaseparated = implode(', ', $this->field021);
    
    public function __construct( $data = array() ) {
    
        if(isset($data['field021'])) {
    
          // wrong: $data['field021'] is an array, so don't stripslashes() / strip_tags()
          //$this->field021 = stripslashes( strip_tags( $data['field021'] ) );
    
          $this->field021 = array();
          foreach ($data['field021'] AS $key => $value) {
              $this->field021[$key] = stripslashes(strip_tags($value));
          }
    
          //   STRING                        ARRAY
          //    |  |                          | |
          //    V  V                          V V
          $this->field021 = implode(', ', $this->field021);
    
        } // end if
    
        ...