MySQL 8.0 の SQL クエリ JSON によって返されるデータ型は配列ではなく文字列です
P粉099985373
P粉099985373 2023-08-28 19:46:01
0
1
575
<p>以下に示すように、MySQL 8.0 でテーブルを作成しました。 <pre class="brush:php;toolbar:false;">CREATE TABLE `airline_table` ( `id` int unsigned NOT NULL AUTO_INCREMENT、 `info` json デフォルト NULL、 主キー (`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 Airlines_table VALUES ('1','{"data": [{"city": "Houston", "state": 「TX」}、 {"都市": "ロサンゼルス", "州": "CA"}], "航空会社": ["UA", "AA"]}'); <p>php を使用してデータベースにアクセスし、「airline」の値を配列として取得したいと考えています。 </p> <pre class="brush:php;toolbar:false;"><?php $mysqli = new mysqli("localhost", "root", "aproot2019", "test"); $sql = "SELECT id, info -> '$.airline' AS 航空会社 FROM airline_table"; $result = $mysqli->query($sql); $row = $result->fetch_array(); //print_r($row); $airline = $row['airline']; echo $airline . "<br>"; // ["UA", "AA"] 、これは配列ではなく文字列ですが、どうすれば配列を取得できますか? echo is_array($airline) ? 'Array' : 'not an Array' . "<br>"; // 配列ではありません echo is_string($airline) ? 'String' : 'not a String' . "<br>" ; // 文字列 $mysqli->close(); ?></pre> <p>ただし、出力されるのは配列ではなく文字列です。 これは本当に面倒です。MySQL の JSON は理解するのが難しいです。 </p>
P粉099985373
P粉099985373

全員に返信(1)
P粉253518620

JSON をデコードすることを検討しましたか?

リーリー
いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!