MySQL 8.0的SQL查询JSON返回的数据类型为字符串而非数组
P粉099985373
P粉099985373 2023-08-28 19:46:01
[PHP讨论组]
<p>我在MySQL 8.0中创建了一个表,如下所示:</p> <pre class="brush:php;toolbar:false;">CREATE TABLE `airline_table` ( `id` int unsigned NOT NULL AUTO_INCREMENT, `info` json DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;</pre> <p>它包含了JSON类型的数据,我插入了一些数据,如下:</p> <pre class="brush:php;toolbar:false;">INSERT INTO airline_table VALUES ('1','{&quot;data&quot;: [{&quot;city&quot;: &quot;Houston&quot;, &quot;state&quot;: &quot;TX&quot;}, {&quot;city&quot;: &quot;Los Angles&quot;, &quot;state&quot;: &quot;CA&quot;}], &quot;airline&quot;: [&quot;UA&quot;, &quot;AA&quot;]}');</pre> <p>我使用php访问数据库,希望将&quot;airline&quot;的值作为一个数组获取。</p> <pre class="brush:php;toolbar:false;">&lt;?php $mysqli = new mysqli(&quot;localhost&quot;, &quot;root&quot;, &quot;aproot2019&quot;, &quot;test&quot;); $sql = &quot;SELECT id, info -&gt; '$.airline' AS airline FROM airline_table&quot;; $result = $mysqli-&gt;query($sql); $row = $result-&gt;fetch_array(); //print_r($row); $airline = $row['airline']; echo $airline . &quot;&lt;br&gt;&quot;; // [&quot;UA&quot;, &quot;AA&quot;] , 这是一个字符串而不是一个数组,我怎样才能得到一个数组呢? echo is_array($airline) ? 'Array' : 'not an Array' . &quot;&lt;br&gt;&quot;; // 不是一个数组 echo is_string($airline) ? 'String' : 'not a String' . &quot;&lt;br&gt;&quot; ; // 字符串 $mysqli-&gt;close(); ?&gt;</pre> <p>但是它输出的是一个字符串,而不是一个数组! 这真的很烦人,MySQL中的JSON很难理解。</p>
P粉099985373
P粉099985373

全部回复(1)
P粉253518620

您是否考虑过解码JSON?

$json = json_decode('{"data": [{"city": "Houston", "state": "TX"}, {"city": "Los Angles", "state": "CA"}], "airline": ["UA", "AA"]}');

// 对于您的情况,将是:
// $json = json_decode($row['airline']);
echo var_dump($json->airline);
/**
 * array(2) {
  [0]=>
  string(2) "UA"
  [1]=>
  string(2) "AA"
}

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号