我有一个使用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中的数据?
答案 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]);