我有一个数据库,其中有一个我刚刚使用以下信息创建的表- 表格:rec_nutr 列: nutrDesc varchar(60), nutr_ttl float , 单位 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() 以防它作为字符串传入,但这似乎没有帮助。我可以添加一些内容来查看插入时是否有错误消息吗?
最佳答案
我刚刚意识到我只向用于登录数据库的用户授予了 SELECT 权限!
感谢您的帮助。
关于php - 使用php将关联数组插入mysql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19775907/