Le type de données renvoyé par la requête SQL JSON de MySQL 8.0 est une chaîne au lieu d'un tableau
P粉099985373
P粉099985373 2023-08-28 19:46:01
0
1
604
<p>J'ai créé une table dans MySQL 8.0 comme indiqué ci-dessous : </p> <pre class="brush:php;toolbar:false;">CREATE TABLE `airline_table` ( `id` int non signé NOT NULL AUTO_INCREMENT, `info` json PAR DÉFAUT NULL, CLÉ PRIMAIRE (`id`) ) MOTEUR=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;</pre> <p>Il contient des données de type JSON, j'ai inséré quelques données comme suit : </p> <pre class="brush:php;toolbar:false;">INSÉRER DANS LES VALEURS de la table_avion ('1','{"données" : [{"ville" : "Houston", "état" : "TX"}, {"ville" : "Los Angles", "état" : "CA"}], "compagnie aérienne" : ["UA", "AA"]}');</pre> <p>J'utilise php pour accéder à la base de données et j'espère obtenir la valeur de "compagnie aérienne" sous forme de tableau. </p> <pre class="brush:php;toolbar:false;"><?php $mysqli = new mysqli("localhost", "root", "aproot2019", "test"); $sql = "SELECT id, info -> '$.airline' AS compagnie aérienne FROM compagnie_table"; $result = $mysqli->query($sql); $row = $result->fetch_array(); //print_r($ligne); $compagnie aérienne = $row['compagnie aérienne']; echo $airline . "<br>"; // ["UA", "AA"] , c'est une chaîne au lieu d'un tableau, comment puis-je obtenir un tableau ? echo is_array($airline) ? 'Array' : 'pas un tableau' '<br>''; echo is_string($airline) ? 'String' : 'pas une chaîne' . $mysqli->close(); ?>≪/pré> <p>Mais il génère une chaîne, pas un tableau ! C'est vraiment ennuyeux, JSON dans MySQL est difficile à comprendre. </p>
P粉099985373
P粉099985373

répondre à tous(1)
P粉253518620

Avez-vous pensé à décoder 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"
}

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!