Mysql Insert删除最后两行

时间:2016-05-09 22:56:35

标签: php mysql

作为我正在开发的网站的一部分,我通过PHP脚本获取了“我是否已经被关注”的所有当前数据泄露。我可以使用网站的API获取所有违规行为,此时有104个。我已经尝试将它们全部插入到数据库表中,但最后2个因某些原因被删除,因此插入的总行数仅为102而不是104。在我的表中没有约束,我检查了mysql错误以及使用SHOW WARNINGS但仍然没有。

有谁知道为什么会这样?之前已经发生了,但这是由于对Varchar限制的约束,所以将其更改为Text,直到现在才解决了这个问题。我正在使用从API引入的JSON数组的计数,并且计数为104,因此它必须是Mysql,这是有问题的。任何人的想法?

$fs = file_get_contents('https://haveibeenpwned.com/api/v2/breaches/', false, $context)
$fs = json_decode($file, true);
$count = count($fs);
for($i=0;$i<$count;$i++) {
                $title = mysql_real_escape_string($fs[$i]['Title']);
                $name = mysql_real_escape_string($fs[$i]['Name']);
                $domain = mysql_real_escape_string($fs[$i]['Domain']);
                $breachdate = mysql_real_escape_string($fs[$i]['BreachDate']);
                $adddate = mysql_real_escape_string($fs[$i]['AddedDate']);
                //$ad_date = explode("T", $adddate);
                //$add_date = $ad_date[0];
                //$add_time = rtrim($ad_date[1], "Z");
                //$add_time = $ad_date[1];
                $pwncount = mysql_real_escape_string($fs[$i]['PwnCount']);
                $desc = mysql_real_escape_string($fs[$i]['Description']);
                //$dc = count($fs[$i]['DataClasses']);
                $dca = implode(',',$fs[$i]['DataClasses']);
                $isver = mysql_real_escape_string($fs[$i]['IsVerified']);
                $issens = mysql_real_escape_string($fs[$i]['IsSensitive']);
                $sql = mysql_query("INSERT INTO breaches (Title, Name, Domain, AddedDate, BreachDate, PwnCount, Descript, DataClasses, IsVerified, IsSensitive) VALUES ('$title','$name','$domain','$adddate','$breachdate','$pwncount','$desc','$dca','$isver','$issens')");
                //echo '<p>Title: '.$title.'</p>';
                //echo '<p>Data Classes: '.$dca.'</p>';
            }

$ count的输出与预期的104一样,因为返回的JSON数组中有104个项目。只有102条记录到达数据库表,没有约束。

1 个答案:

答案 0 :(得分:0)

在$ sql = mysql_query行

之后向sql添加一些错误检查
if (!$sql) {
    print_r($fs[$i]);
    die('Invalid query: ' . mysql_error());
}