【问题标题】:how to store two field value in one mysql field in wordpress custom如何在wordpress自定义的一个mysql字段中存储两个字段值
【发布时间】:2020-06-01 05:29:49
【问题描述】:

这是我在数据表中存储值的数组代码。 我想在一个 MySQL 字段中存储四个字段值

我需要将 answer1, answer2, answer3, answer4 存储在答案行中

显示错误:- wpdb::prepare 调用不正确。不支持的值类型(数组)。有关更多信息,请参阅 WordPress 中的调试。 (此消息是在 4.8.2 版本中添加的。)

这是我的数组代码

    if(isset($_POST['submit'])){    
    $answer1=$_POST['answer1'];
    $answer2=$_POST['answer2'];
    $answer3=$_POST['answer3'];
    $answer4=$_POST['answer4'];
    $table_name2 = $wpdb->prefix . 'pte_quiz';
    $wpdb->insert(
      $table_name2,
      array(
        'answer' => array('answer1' =>$answer1, 'answer2' =>$answer2, 'answer3' =>$answer3, 'answer4' =>$answer4),
        'uid' => $uid,
        'user' => $user )
        );
        echo "Your answer successfully submited!!!";?><br>
        Your Answer is <?php echo $answer;
exit;
}

【问题讨论】:

  • 用适当的分隔符将答案放在一个字符串中,例如 $str = $ans1.','.$ans2.','...... ;然后插入str,在reterival中使用explode方法得到数组中的答案。
  • @Hardood,不推荐你的方法。如果我们使用的分隔符存在于答案本身中怎么办?爆炸时,它会破坏答案。

标签: php wordpress


【解决方案1】:

试试看

   if(isset($_POST['submit'])){    
    $answer1=$_POST['answer1'];
    $answer2=$_POST['answer2'];
    $answer3=$_POST['answer3'];
    $answer4=$_POST['answer4'];
    $table_name2 = $wpdb->prefix . 'pte_quiz';
    $wpdb->insert(
      $table_name2,
      array(
        'answer' => json_encode(array('answer1' =>$answer1, 'answer2' =>$answer2, 'answer3' =>$answer3, 'answer4' =>$answer4)),
        'uid' => $uid,
        'user' => $user )
        );
        echo "Your answer successfully submited!!!";?><br>
        Your Answer is <?php echo json_decode($answer,true);
exit;
}

我们可以简单地将答案数组转换为 JSON 字符串并将其存储到数据库中。稍后当我们需要使用存储的值时,我们可以简单地json_decode()它并获取所需的数组。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-11
    • 1970-01-01
    相关资源
    最近更新 更多