我可能缺少非常基本的東西,但我不明白。我的數(shù)據(jù)庫中有一個名為 mus_translated_languages 的表,其中有一個 json 數(shù)據(jù)類型列(六條記錄),其值始終采用以下結構:["GERMAN","ENGLISH","FRENCH"]當我使用以下代碼時:$sql = 'SELECT labels->"$[1]" FROM mus_translated_languages';$result = mysqli_query( $conn, $sql );if ( mysqli_num_rows( $result ) > 0 ) { while ( $row = mysqli_fetch_assoc( $result ) ) { echo $row; }}我沒有得到六種相應的語言,而是得到以下輸出:ArrayArrayArrayArrayArrayArray所以看起來我的代碼無法讀取輸出值,只能讀取其數(shù)據(jù)類型。我錯過了什么??更新我在上面的代碼中使用了var_dump($row)instead ofecho $row來查看我們有什么,服務器返回:array(1) { ["labels->"$[1]""]=> string(9) ""Deutsch"" } array(1) { ["labels->"$[1]""]=> string(10) ""Englisch"" }等等等等第四,對于6個數(shù)組/記錄。然后我用了:foreach ($row as $key => $value) { echo $value; }而不是echo $row在上面的代碼中,得到了我想要的。但是,我覺得這不是應該的方式;PHP 將單個數(shù)組元素作為單索引子數(shù)組檢索,而不是將它們作為值檢索。我缺少什么?
1 回答

至尊寶的傳說
TA貢獻1789條經(jīng)驗 獲得超10個贊
->>好吧,所以當我使用別名作為查詢結果的輸出列的名稱,并通過使用而不是它來取消對查詢結果的字符串的引用時,它起作用了,如下所示->:
$sql = 'SELECT labels->>"$[2]" AS label FROM mus_translated_languages';
$result = mysqli_query( $conn, $sql );
if ( mysqli_num_rows( $result ) > 0 ) {
? while ( $row = mysqli_fetch_assoc( $result ) ) {
? ? echo $row['label'];
? }
}
PS:我原本打算使用可變數(shù)組索引來查詢數(shù)組元素。
- 1 回答
- 0 關注
- 187 瀏覽
添加回答
舉報
0/150
提交
取消