Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 将JSON字符串保存到MySQL数据库_Php_Mysql_Xampp - Fatal编程技术网

Php 将JSON字符串保存到MySQL数据库

Php 将JSON字符串保存到MySQL数据库,php,mysql,xampp,Php,Mysql,Xampp,我随身携带一个JSON字符串 {"name":"jack","school":"colorado state","city":"NJ","id":null} 我需要把它保存在数据库里。我怎么能这样做 我的PHP代码(我只建立了与MySQL的连接,但无法保存记录) 解码到数组中并将其传递到mysql\u查询中,下面的代码没有使用mysql\u real\u escape\u字符串或任何其他安全方法,您应该实现这些方法 假设$json是{“name”:“jack”,“school”:“colora

我随身携带一个JSON字符串

{"name":"jack","school":"colorado state","city":"NJ","id":null}
我需要把它保存在数据库里。我怎么能这样做

我的PHP代码(我只建立了与MySQL的连接,但无法保存记录)


解码到数组中并将其传递到mysql\u查询中,下面的代码没有使用mysql\u real\u escape\u字符串或任何其他安全方法,您应该实现这些方法

假设$json是{“name”:“jack”,“school”:“colorado state”,“city”:“NJ”,“id”:null}

现在php数组中有了索引,例如:$json_数组['name']

mysql_query("INSERT INTO student (name, school,city) VALUES('".$json_array['name']."', '".$json_array['school']."', '".$json_array['city']."') ") or die(mysql_error());  

我们将使用
json\u解码

也一定要逃跑!下面是我将如何做

/* create a connection */
$mysqli = new mysqli("localhost", "root", null, "yourDatabase");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* let's say we're grabbing this from an HTTP GET or HTTP POST variable called jsonGiven... */
$jsonString = $_REQUEST['jsonGiven'];
/* but for the sake of an example let's just set the string here */
$jsonString = '{"name":"jack","school":"colorado state","city":"NJ","id":null}
';

/* use json_decode to create an array from json */
$jsonArray = json_decode($jsonString, true);

/* create a prepared statement */
if ($stmt = $mysqli->prepare('INSERT INTO test131 (name, school, city, id) VALUES (?,?,?,?)')) {

    /* bind parameters for markers */
    $stmt->bind_param("ssss", $jsonArray['name'], $jsonArray['school'], $jsonArray['city'], $jsonArray['id']);

    /* execute query */
    $stmt->execute();

    /* close statement */
    $stmt->close();
}

/* close connection */
$mysqli->close();

希望这有帮助

这是帮助您的示例

<?php
 $json = '{"name":"jack","school":"colorado state","city":"NJ","id":null}';// You can get it from database,or Request parameter like $_GET,$_POST or $_REQUEST or something :p
 $json_array = json_decode($json);

 echo $json_array["name"];
 echo $json_array["school"];
 echo $json_array["city"];
 echo $json_array["id"];
?>


希望这有帮助

在我的Firebug控制台中,我发布了
{“name”:“jack”,“school”:“colorado state”,“city”:“NJ”,“id”:null}
那么我如何获取此值并将其保存到
$json
,如代码所示?您所说的转义是什么意思。抱歉,我是PHPHow新手。我是否收到了指向
$JSON
的JSON字符串?我以为你已经收到了,如果你说它显示在你的Firebug控制台上,它从哪里显示?谁创造了它?请解释一下,这样我可以帮助您将其转换为$json。如果您的json信息来自表单,该怎么办?你会如何编码?我不明白什么是
jsonGiven
。我的JSON字符串是
{“name”:“jack”,“school”:“colorado state”,“city”:“NJ”,“id”:null}
。我无法从PHP代码中读取它。jsonGiven将是示例参数名,其中值是json字符串。例如{“name”:“jack”等
/* create a connection */
$mysqli = new mysqli("localhost", "root", null, "yourDatabase");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* let's say we're grabbing this from an HTTP GET or HTTP POST variable called jsonGiven... */
$jsonString = $_REQUEST['jsonGiven'];
/* but for the sake of an example let's just set the string here */
$jsonString = '{"name":"jack","school":"colorado state","city":"NJ","id":null}
';

/* use json_decode to create an array from json */
$jsonArray = json_decode($jsonString, true);

/* create a prepared statement */
if ($stmt = $mysqli->prepare('INSERT INTO test131 (name, school, city, id) VALUES (?,?,?,?)')) {

    /* bind parameters for markers */
    $stmt->bind_param("ssss", $jsonArray['name'], $jsonArray['school'], $jsonArray['city'], $jsonArray['id']);

    /* execute query */
    $stmt->execute();

    /* close statement */
    $stmt->close();
}

/* close connection */
$mysqli->close();
<?php
 $json = '{"name":"jack","school":"colorado state","city":"NJ","id":null}';// You can get it from database,or Request parameter like $_GET,$_POST or $_REQUEST or something :p
 $json_array = json_decode($json);

 echo $json_array["name"];
 echo $json_array["school"];
 echo $json_array["city"];
 echo $json_array["id"];
?>