使用 PHP 将 JSON 转换为 MYSQL TABLE

时间:2021-07-04 22:32:48

标签: php mysql json

尝试使用 PHP 将 JSON 文件插入到 MYSQL TABLE 中,尝试遍历 JSON 文件但它只是插入第一行,我是初学者,所以请帮助,下面是我的 PHP 代码

bool is_consecutive(int arr[], int leng)
{
    if (arr[leng-1] != 9) {
        return false;
    }
    if (leng == 1) {
        return true;
    }
    int i = 0;
    while (i < leng - 1) {
        if (arr[i+1]-arr[i] != 1) {
            return false;
        }
        i++;
    }
    return true;
}

下面的我的 JSON 文件,似乎无法遍历它,它是我试图插入到 MYSQL 表中的代码和值的列表

$host = "localhost";
$username = "root";
$password = "";
$dbname = "Portfolio";
$con = mysqli_connect($host, $username, $password, $dbname) or die('Error in Connecting: ' . mysqli_error($con));


$st = mysqli_prepare($con, 'INSERT INTO completetsxtickers (summaryDetailmaxAge,summaryDetailpriceHint,summaryDetailpreviousClose,summaryDetailopen,
                    summaryDetaildayLow,summaryDetaildayHigh,summaryDetailregularMarketPreviousClose,summaryDetailregularMarketOpen,summaryDetailregularMarketDayLow,
                    summaryDetailregularMarketDayHigh,summaryDetaildividendRate,summaryDetaildividendYield,summaryDetailexDividendDate,summaryDetailpayoutRatio,
                    summaryDetailfiveYearAvgDividendYield,summaryDetailbeta,summaryDetailtrailingPE,summaryDetailforwardPE,summaryDetailvolume,
                    summaryDetailregularMarketVolume,summaryDetailaverageVolume,summaryDetailaverageVolume10days,summaryDetailaverageDailyVolume10Day,summaryDetailbid,
                    summaryDetailask,summaryDetailbidSize,summaryDetailaskSize,summaryDetailmarketCap,summaryDetailfiftyTwoWeekLow,summaryDetailfiftyTwoWeekHigh,
                    summaryDetailpriceToSalesTrailing12Months,summaryDetailfiftyDayAverage,summaryDetailtwoHundredDayAverage,summaryDetailtrailingAnnualDividendRate,
                    summaryDetailtrailingAnnualDividendYield,summaryDetailcurrency,summaryDetailfromCurrency,summaryDetaillastMarket,summaryDetailalgorithm,
                    summaryDetailtradeable,pricemaxAge,priceregularMarketChangePercent,priceregularMarketChange,priceregularMarketTime,pricepriceHint,
                    priceregularMarketPrice,priceregularMarketDayHigh,priceregularMarketDayLow,priceregularMarketVolume,priceaverageDailyVolume10Day,
                    priceaverageDailyVolume3Month,priceregularMarketPreviousClose,priceregularMarketSource,priceregularMarketOpen,priceexchange,priceexchangeName,
                    priceexchangeDataDelayedBy,pricemarketState,pricequoteType,pricesymbol,priceunderlyingSymbol,priceshortName,pricelongName,pricecurrency,
                    pricequoteSourceName,pricecurrencySymbol,pricefromCurrency,pricelastMarket,pricemarketCap)
                               VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, 
                                       ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, 
                                       ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)');

// bind variables to insert query params

mysqli_stmt_bind_param($st, 'sssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss', $summaryDetailmaxAge,$summaryDetailpriceHint,
    $summaryDetailpreviousClose,$summaryDetailopen,
    $summaryDetaildayLow,$summaryDetaildayHigh,$summaryDetailregularMarketPreviousClose,$summaryDetailregularMarketOpen,$summaryDetailregularMarketDayLow,
    $summaryDetailregularMarketDayHigh,$summaryDetaildividendRate,$summaryDetaildividendYield,$summaryDetailexDividendDate,$summaryDetailpayoutRatio,
    $summaryDetailfiveYearAvgDividendYield,$summaryDetailbeta,$summaryDetailtrailingPE,$summaryDetailforwardPE,$summaryDetailvolume,
    $summaryDetailregularMarketVolume,$summaryDetailaverageVolume,$summaryDetailaverageVolume10days,$summaryDetailaverageDailyVolume10Day,$summaryDetailbid,
    $summaryDetailask,$summaryDetailbidSize,$summaryDetailaskSize,$summaryDetailmarketCap,$summaryDetailfiftyTwoWeekLow,$summaryDetailfiftyTwoWeekHigh,
    $summaryDetailpriceToSalesTrailing12Months,$summaryDetailfiftyDayAverage,$summaryDetailtwoHundredDayAverage,$summaryDetailtrailingAnnualDividendRate,
    $summaryDetailtrailingAnnualDividendYield,$summaryDetailcurrency,$summaryDetailfromCurrency,$summaryDetaillastMarket,$summaryDetailalgorithm,
    $summaryDetailtradeable,$pricemaxAge,$priceregularMarketChangePercent,$priceregularMarketChange,$priceregularMarketTime,$pricepriceHint,
    $priceregularMarketPrice,$priceregularMarketDayHigh,$priceregularMarketDayLow,$priceregularMarketVolume,$priceaverageDailyVolume10Day,
    $priceaverageDailyVolume3Month,$priceregularMarketPreviousClose,$priceregularMarketSource,$priceregularMarketOpen,$priceexchange,$priceexchangeName,
    $priceexchangeDataDelayedBy,$pricemarketState,$pricequoteType,$pricesymbol,$priceunderlyingSymbol,$priceshortName,$pricelongName,$pricecurrency,
    $pricequoteSourceName,$pricecurrencySymbol,$pricefromCurrency,$pricelastMarket,$pricemarketCap);

$filename = 'testing.json';

$json = file_get_contents($filename);

$data = json_decode($json, true);

var_dump($data);

foreach ($data as $row)
{

    $summaryDetailmaxAge = $row['summaryDetail']['maxAge'];
    $summaryDetailpriceHint = $row['summaryDetail']['priceHint'];
    $summaryDetailpreviousClose = $row['summaryDetail']['previousClose'];
    $summaryDetailopen = $row['summaryDetail']['open'];
    $summaryDetaildayLow = $row['summaryDetail']['dayLow'];
    ....
    ....
    

    mysqli_stmt_execute($st);

}

0 个答案:

没有答案
相关问题