Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/283.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数组不会将值放入数据库_Php_Mysql_Json - Fatal编程技术网

Php Json数组不会将值放入数据库

Php Json数组不会将值放入数据库,php,mysql,json,Php,Mysql,Json,试图将$json数组值放入数据库,但遗憾的是,由于某些原因,它无法工作,我找不到原因。我的第一个猜测是因为它可能是mysql中的varchar255 <?php $json = '[ { "order_id":123, "kases_id":12, "product_quantity":121, "product_name":"suns", "postage_adress":"garaazha",

试图将$json数组值放入数据库,但遗憾的是,由于某些原因,它无法工作,我找不到原因。我的第一个猜测是因为它可能是mysql中的varchar255

<?php
$json = '[
    {
        "order_id":123,
        "kases_id":12,
        "product_quantity":121,
        "product_name":"suns",
        "postage_adress":"garaazha",
        "barcode":"2131231"
    }
]';
//create a DB connection
$connect = mysqli_connect("localhost", "root", "", "qrbuddy");


$result = json_decode($json);
foreach($result as $key => $value) {
    if($value) {
        mysqli_query($connect, "INSERT INTO qrbuddy (order_id, kases_id, product_quantity, product_name, postage_adress, barcode, status) VALUES ($value->order_id, $value->kases_id,$value->product_quantity,$value->product_name,$value->postage_adress,$value->barcode, 0)");
    }
    mysqli_close($connect);
}
?>
试着这样做:

$result = json_decode($json);
foreach($result as $key => $value) {
    if($value) {
        mysqli_query($connect, "INSERT INTO `your_DATABASE_NAME`.`qrbuddy` (`order_id`, `kases_id`, `product_quantity`, `product_name`, `postage_adress`, `barcode`, `status`) VALUES ({$value->order_id}, {$value->kases_id},{$value->product_quantity},{$value->product_name},{$value->postage_adress},{$value->barcode}, 0)");

    }
    mysqli_close($connect);
}
最近我注意到,我还需要指定数据库名称,以便查询能够100%工作

编辑:忘记指定,请确保写入数据库名称,而不是
数据库名称
。只是确保你不会在这件事上浪费太多时间:)

另外,根据我自己在花括号中编写变量的经验,{$variable},可以为您提供更高的查询成功率。(而且它更容易阅读=)


试着这样做:

$result = json_decode($json);
foreach($result as $key => $value) {
    if($value) {
        mysqli_query($connect, "INSERT INTO `your_DATABASE_NAME`.`qrbuddy` (`order_id`, `kases_id`, `product_quantity`, `product_name`, `postage_adress`, `barcode`, `status`) VALUES ({$value->order_id}, {$value->kases_id},{$value->product_quantity},{$value->product_name},{$value->postage_adress},{$value->barcode}, 0)");

    }
    mysqli_close($connect);
}
最近我注意到,我还需要指定数据库名称,以便查询能够100%工作

编辑:忘记指定,请确保写入数据库名称,而不是
数据库名称
。只是确保你不会在这件事上浪费太多时间:)

另外,根据我自己在花括号中编写变量的经验,{$variable},可以为您提供更高的查询成功率。(而且它更容易阅读=)



这个
varchar
只是说它在字段中最多可以容纳255个字符,这不是你的问题。这个代码对我很有效,也许是服务器问题?您是否遇到任何sql错误或其他问题?注意:
mysqli
的面向对象接口明显不那么冗长,使代码更易于阅读和审核,并且不容易与过时的
mysql\u query
接口混淆。在你对程序性风格投入太多之前,值得换一种。示例:
$db=new mysqli(…)
$db->prepare(“…”)
过程接口是PHP 4时代引入
mysqli
API时的产物,不应在新代码中使用。警告:使用
mysqli
时,应使用并将用户数据添加到查询中。不要使用字符串插值或串联来完成此操作,因为您已经创建了严重的错误。切勿将
$\u POST
$\u GET
或任何用户数据直接放入查询中,如果有人试图利用您的错误进行攻击,这可能非常有害。是否插入了第一行?你不应该在foreach循环中使用
mysqli\u close()
varchar
只是说它最多可以在字段中容纳255个字符,这不是你的问题。这段代码对我有效,可能是服务器问题?您是否遇到任何sql错误或其他问题?注意:
mysqli
的面向对象接口明显不那么冗长,使代码更易于阅读和审核,并且不容易与过时的
mysql\u query
接口混淆。在你对程序性风格投入太多之前,值得换一种。示例:
$db=new mysqli(…)
$db->prepare(“…”)
过程接口是PHP 4时代引入
mysqli
API时的产物,不应在新代码中使用。警告:使用
mysqli
时,应使用并将用户数据添加到查询中。不要使用字符串插值或串联来完成此操作,因为您已经创建了严重的错误。切勿将
$\u POST
$\u GET
或任何用户数据直接放入查询中,如果有人试图利用您的错误进行攻击,这可能非常有害。是否插入了第一行?您不应该在foreach循环中使用
mysqli\u close()