我有一个数据库,其中包含我刚刚使用以下信息表创建的 表:rec_nutr 列: nutrDesc varchar(60)、nutr_ttl float、units varchar(7),我有一个名为 $stuff 的 php 数组,我想插入它进入这张表。当我 print_r($stuff) 它看起来像:
Array
(
[0]=> Array
(
[nut]=> Protein
[amt]=> 0.85
[units]=> g
)
[1]=> Array
(
[nut]=> Energy
[amt]=> 717
[units]=> kcal
)
etc.
)
该连接是一个名为 $db 的 PDO 对象,这是我用于插入数组的许多不同变体之一
foreach ($stuff as $row){
$nut = $row['nut'];
$amt = $row['amt'];
$units = $row['units'];
$query= "insert into rec_nutr (nutrDesc, nutr_ttl,units)values ($nut,$amt,$units)";
$statement= $db->exec($query);
}
当我运行它时,我没有收到任何错误消息,但是信息没有插入到表中。
我也尝试过使用这个语句
$stmt = $db->prepare("INSERT INTO rec_nutr(nutrDesc, nutr_ttl,units) VALUES ( ?, ?, ?)");
foreach($stuff as $row) {
$stmt->execute(array( $row['nut'],$row['amt'],$row['units']));
}
但再次没有运气
注意:该数组是使用 JSON 从网页中提取的,然后使用 JSON_decode 解码。然后我使用 print_r($stuff) 检查数组。我尝试在 amt 上使用 floatvar() 以防它以字符串形式出现,但这似乎没有帮助。我可以添加一些内容以查看插入时是否有错误消息?