PHP foreach未将整个数组插入mysql表
嗨,我已经创建了一个简单的foreach循环,它通过一个数组循环,并将数据插入到我的db表中。我遇到的问题是,即使数组包含196行,也只向数据库中插入了130行 这是我的密码:PHP foreach未将整个数组插入mysql表,php,arrays,loops,Php,Arrays,Loops,嗨,我已经创建了一个简单的foreach循环,它通过一个数组循环,并将数据插入到我的db表中。我遇到的问题是,即使数组包含196行,也只向数据库中插入了130行 这是我的密码: foreach ($currencyArray as $currency) { if (count($currency) > 1) { $currency_table = $db->prepare(' INSERT INTO currency_name (sy
foreach ($currencyArray as $currency) {
if (count($currency) > 1) {
$currency_table = $db->prepare('
INSERT INTO currency_name (symbol, name, btc_value)
VALUES (:name, :symbol, :btc_value)
');
$currency_table->bindParam(':name', $currency[0]);
$currency_table->bindParam(':symbol', $currency[1]);
$currency_table->bindParam(':btc_value', $currency[2]);
$currency_table->execute();
}
}
我已经确定问题不是由if语句引起的。我在if语句中添加了一个count,这个count 197记录了我在db表中期望的行数,但它只存储了130行
如果您还认为有一种更快的方法可以将数组插入db表,请随意分享:)我发现了错误,这是我的错误,我正在插入数据库的一些名称比我允许的长度长您可以检查,批量插入。您不需要
准备()
每次迭代时的查询。您应该在foreach循环之前进行准备,然后在循环中执行数据。@TareqAlbajjaly大多数答案都是过时的,OP正在尝试使用准备好的语句。您链接到的答案要么使用过时的mysql\uuu
函数,要么使用与此处不相关的CodeIgniter。@GrumpyCrouton如果向下滚动一点,您会发现一个批处理准备插入的示例,仅供参考,建议不要在循环中执行/插入。您应该准备数据,然后将其作为一个批插入。是否有任何错误?您应该使用try
catch
查看sql是否在某些数据上失败。