簡體   English   中英

使用PHP將JSON插入MySQL表

[英]Use PHP to insert JSON to MySQL table

我需要使用PHP將Javascript對象插入新的MySQL表中。 我的對象具有以下形式:

{
  rowA:[A1,A2,A3],
  rowB:[B1,B2,B3],
  rowC:[C1,C2,C3],
}

我也有一個列名數組:

$columns = array("col1","col2","col3");

我需要使用此數據以以下格式創建和填充MySQL表:

      col1 col2 col3
rowA  A1   A2   A3
rowB  B1   B2   B3
rowC  C1   C2   C3

我可以訪問服務器並創建表,但是仍然不確定如何處理JSON:

$str = file_get_contents('barchartData/US-HI.json');
$json = json_decode($str, true);
$conn = new mysqli($servername, $username, $password, $dbname);
$sql = "CREATE TABLE testTable (
   // not sure how to specify column, row, and cell values from the JSON...
)";

我對PHP還是很陌生,還無法在PHP中獲得能夠讀取JSON鍵並將其設置為MySQL行值的代碼。

如前面的評論中所述,我建議拆分該問題。 創建表應該不是問題,因為值不是來自JSON文件。

因此,讓我們從驗證JSON文件開始。 您可以為此使用在線工具。 看一看下面的代碼,您可以將它們與當前腳本分開運行。 這不是最優雅的解決方案,但我認為它將幫助您最好地理解該解決方案。

<?php

echo '<pre>';  // For testing purposes.

// Convert the array to comma separated values as is 
// required by the MySQL insert statement.
$fields          = array("col1","col2","col3");
$imploded_fields = implode(',', $fields);

$json            = '{"rowA":["A1","A2","A3"], "rowB":["B1","B2","B3"], "rowC":["C1","C2","C3"]}';
$decoded         = json_decode($json);

foreach ($decoded as $d) {

    $values  = implode(',', $d);
    $statement =  "INSERT INTO `table` ($imploded_fields) VALUES ($values)";

    echo $statement; // Change this to actually execute the statement
}

希望這是有道理的。 如果您還想優化此解決方案,請查看一些有用的函數,例如array_maparray_keys

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM