Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/69.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 插入到mysql时发生Foreach错误_Php_Mysql - Fatal编程技术网

Php 插入到mysql时发生Foreach错误

Php 插入到mysql时发生Foreach错误,php,mysql,Php,Mysql,我在插入数据时出错。对于数据1-20,数据插入良好。但在此之后,foreach并没有插入所有数据。以下是数据: <?php include "../conn.php"; $source="https://source1.com/json"; $file=file_get_contents($source,true); $char_parse=json_decode($file,true); foreach($char_parse['data'] as $a_item){ $item_s

我在插入数据时出错。对于数据1-20,数据插入良好。但在此之后,foreach并没有插入所有数据。以下是数据:

<?php 
include "../conn.php";
$source="https://source1.com/json";
$file=file_get_contents($source,true);
$char_parse=json_decode($file,true);

foreach($char_parse['data'] as $a_item){
$item_sold=$char_parse2['item_sold'];
$success=$char_parse2['success'];
$reject=$char_parse2['reject'];
$sqli="INSERT INTO `product` VALUES (NULL, '".$item_sold."', '".$success."', '".$reject."')";
mysqli_query($conn,$sqli);
$i++;
}
$?>

我对您的数据结构了解不够。但是根据你的代码,让我们假设

$char_parse['data'] = array(
    array('item_sold'=>'item1', 'success'=>1, 'reject'=>2),
    array('item_sold'=>'item2', 'success'=>1, 'reject'=>2)
);
那么


如果我对数据结构的理解有误,建议的代码将无法工作。

是否有可能提供错误消息?首先,请使用准备好的语句和PDO。@zerkms没有错误消息。但数据插入得不好。在80行中,可能只有76个数据,有时是74个数据。@radenjohannsheryopriambodo您的问题的标题是“Foreach error”,您的意思是什么@DavidFindlayOP真的需要回去使用事先准备好的语句。任何解决方案都应该说明这一点。OP的代码有明显的问题,无论使用的是预先准备好的语句。准备好的语句只有在数据影响查询时才能修复他的问题。现在,这可能是真的,但如果没有数据示例,就没有证据表明数据正在损坏,也没有证据准备好的陈述会有所帮助。毕竟,我实际上是想回答他的问题,而不是简单地监督他的编码风格。这提醒了我,你的解决方案在哪里?还是你只对监管最佳实践感兴趣?我热衷于提醒新手准备好的声明,因为作为前一个新手,我直到很晚才了解它们。
foreach($char_parse['data'] as $a_item){
    $item_sold = $a_item['item_sold'];
    $success = $a_item['success'];
    $reject = $a_item['reject'];
    $sqli = "INSERT INTO `product` VALUES (NULL, '".$item_sold."', '".$success."', '".$reject."')";
    mysqli_query($conn,$sqli);
}