转换PHP数组json并发送到Sql并从Sql获取数据作为数组

时间:2016-12-16 09:55:50

标签: php sql arrays json yii2

我有一个使用Yii2框架的项目开发,在我的项目中我已经将数组发送到sql中的一个列中,在发送到Sql之前,这是以下数组

Array(
[0] => Array 
  (
   [0] => Array
       (
         [0] => first_name
         [1] => last_name
         [2] => age
         [3] => sex
       )
  )
[1] => Array
  (
   [0] => Array
       (
         [0] => Andrew
         [1] => Lugiano
         [2] => 18
         [3] => Male
       )
  )
[2] => Array
  (
   [0] => Array
       (
         [0] => Elizabeth
         [1] => Natari
         [2] => 21
         [3] => Female
       )
   )
 )

这是 CustomHeaderController 中的代码

$encoded_array = json_encode($arrayData);
$command_2 = "INSERT INTO data(array_data) VALUES('$encoded_array')";
$query_2 = Yii::$app->db->createCommand($command_2)->execute();

Sql中的列名为array_data,数据类型为mediumtext,表名为data

然后我尝试通过 SaveController 从sql中恢复,这是我用来从Sql获取数据的代码:

$sql = $connection->createCommand("SELECT array_data FROM data WHERE user_id=$userId");
$modelHeader = $sql->queryColumn();

但我得到了这个结果:

  

阵   (   [0] => [[[" first_name",'' last_name'''' age'',"性"]],[["安德鲁"" Lugiano"" 18""男性"]],[[& #34;伊丽莎白"" Natari"" 21""女"]]]   )

这不是我的预期结果,这是我的项目所需要的(就像之前发送到Sql 一样)

  

阵   (     [0] =>排列         (          [0] =>排列              (                [0] =>名字                [1] =>姓                [2] =>年龄                [3] =>性别              )         )     [1] =>排列         (          [0] =>排列              (                [0] =>安德鲁                [1] => Lugiano                [2] => 18                [3] =>男              )         )     [2] =>排列         (          [0] =>排列              (                [0] =>伊丽莎白                [1] => Natari                [2] => 21                [3] =>女              )          )   )

如何从预期结果中获取Sql中的数据?

1 个答案:

答案 0 :(得分:0)

只要您想要返回数据使用格式化程序,就将数据作为数组插入。像这样:

\Yii::$app->response->format = \yii\web\Response::FORMAT_JSON;
$sql = $connection->createCommand("SELECT array_data FROM data WHERE user_id=$userId");
$modelHeader = $sql->queryColumn();

了解更多详情wiki

对于现有代码解码:

$sql = $connection->createCommand("SELECT array_data FROM data WHERE user_id=$userId");
$modelHeader = $sql->queryColumn();
$phparray = json_decode($modelHeader[0]);