Php Json数组不会将值放入数据库
试图将$json数组值放入数据库,但遗憾的是,由于某些原因,它无法工作,我找不到原因。我的第一个猜测是因为它可能是mysql中的varchar255Php 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",
<?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()
。