php - Json转Mysql数据库

标签 php mysql json facebook

我正在尝试解析 json 文件并将字段推送到数据库 jSON 来源:http://graph.facebook.com/10153575791993298/

解析和回显

<?php
    $json_file = file_get_contents('http://graph.facebook.com/10153575791993298/');
    $info = json_decode($json_file);

    if ($info) {
         foreach ($info->likes->data as $obj){
            echo $obj->id, "<br/>";
            echo $obj->name, "<br/>";
         }
    }
?>

数据库部分:

<?php
    // Create connection
    $mysqli = new mysqli('localhost', 'root', 'root', 'facebook');
    $query = <<<SQL
    INSERT INTO Likes ('ID', 'Name')
    VALUES (?, ?)
    SQL;
    $stmt = $mysqli->prepare($query);
    foreach ($info['data'] as $key => $value) {
        $stmt->bind_param(
            // the types of the data we are about to insert: s = string, i = int
            'ss', 
            $value['id'],
            $value['name'],
        );
        $stmt->execute();
    }
    $stmt->close();
    $mysqli->close();
?>

我正确设置了表,但不知道为什么无法将数据推送到数据库。 我想检索数据并推送到我的数据库的 Json 部分 http://graph.facebook.com/10153575791993298/likes

最佳答案

MySQL 语法 101:' 将内容转换为字符串:

INSERT INTO Likes ('ID', 'Name')
                   ^--^--^----^---

您没有插入名为 ID 的字段。您传递的是 STRING,这是非法语法。一旦某个东西是字符串,它就不会被数据库解释为字段/表标识符。

应该是这样

INSERT INTO Likes (ID, Name)

因为您的字段名称都不是保留字。如果您坚持引用内容,请使用反引号来引用字段/表名称:

INSERT INTO Likes (`ID`, `Name`)

关于php - Json转Mysql数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27781755/

相关文章:

java - 无法使用Retrofit和GSON解析JSON - Thinbug

php - 如何将两个 SQL SELECT 语句合并为一个?

PHP - 阅读 POST 变量的好习惯

php - 无法连接到本地主机mysql数据库

php - 单个 PHP 上的多种表单

php - 跨多个表维护唯一标识

php - 选择不包含重复数据的语句

php - 无法从单独的文件中检索数据库连接信息

jquery - 点击监听器无法从使用 jsondata 生成的 html 中工作

java - 在javascript中将JSONArray转换为String以发送到java