php - 将来自 JSON 的数据放入 MySQL 数据库

标签 php javascript sql-server database json

<分区>

我有一个关于 JSON 和 MySQL 数据库的问题。 我想要的是我可以将 JSON 文件中的数据加载到数据库中的字段中。 我的 JSON 文件如下所示:

{
    "wijken": {
        "11": {
            "id": "kml_1",
            "fid": "0",
            "wijziging": "Ja",
            "nieuwnr": "11",
            "naam": "Noordoost",
            "wijk": "Kanaaldorpen en -zone",
            "wijknr": "11",
            "objectid": "1",
            "area": "0",
            "len": "0"
        },
        "12": {
            "id": "kml_2",
            "fid": "1",
            "wijziging": "Ja",
            "nieuwnr": "12",
            "naam": "Noordoost",
            "wijk": "Oostakker",
            "wijknr": "12",
            "objectid": "2",
            "area": "0",
            "len": "0"
        }
    }
}

我有一个数据库,其中包含一个带有字段的表“wijken”:

ID / FID / WIJZIGING / NIEUWNR / NAAM / WIJK / WIJKNR / OBJECTID / AREA / LEN

现在我希望 json 文件中的所有数据都在该表中。 (php + javascript)

有人可以帮我开始吗? (或者提供一些好的搜索词的教程)

提前致谢!

最佳答案

首先你需要从文件系统加载文件

$json_string = file_get_contents('some/path/to/file.json');

然后可以使用json_decode将json字符串转成php数组

$data = json_decode($json_string, true); 

此时,您将能够使用 $data['wijken'] 访问数据以进入 wijken 表。

为了将此数据插入 mysql 数据库,您将需要使用 php mysql 扩展之一,mysqliPDO .

我将在这个例子中使用 mysqli:

// first create a connection to your database
$mysqli = new mysqli('localhost', 'user', 'password', 'database_name');

// this insert query defines the table, and columns you want to update
$query = <<<SQL
INSERT INTO wijken ('ID', 'FID', 'WIJZIGING', 'NIEUWNR', 'NAAM', 'WIJK', 'WIJKNR', 'OBJECTID', 'AREA', 'LEN')
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
SQL;

$stmt = $mysqli->prepare($query);

// for each of the 'rows' of data in the json we parsed, we will insert each value
// into it's corresponding column in the database, and we are doing this using prepared
// statements.
foreach ($data['wijken'] as $key => $value) {
    $stmt->bind_param(
        // the types of the data we are about to insert: s = string, i = int
        'sissssiiii', 
        $value['id'],
        $value['fid'],
        $value['wijziging'],
        $value['nieuwnr'],
        $value['naam'],
        $value['wijk'],
        $value['wijknr'],
        $value['objectid'],
        $value['area'],
        $value['len']
    );

    $stmt->execute();
}

$stmt->close();

// close the connection to the database
$mysqli->close();

关于php - 将来自 JSON 的数据放入 MySQL 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14295508/

相关文章:

php - 为什么这些 PDO 语句中的数据没有插入到表(该表包含外键)中?

php - 查询生成器 : IN clause with composite columns

php - fancybox 上的图像翻转效果

javascript - 仅当给定 Handlebar 变量时才显示周围的 HTML

javascript - 带有斜杠的表达式未正确突出显示

c# - DAL 中的 F# 类型提供程序

php - MySQL/PHP 中如果字段为空则隐藏该字段

php - 如何生成api_token?

sql-server - Visual Studio 和 SQL Server - 安装顺序正确吗?

sql-server - 检查SQL Server数据库上的托管程序集版本