php - 使用php将关联数组插入mysql

标签 php mysql arrays

我有一个数据库,其中有一个我刚刚使用以下信息创建的表- 表格: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/

相关文章:

php - 使用 HTTP-POST 方法将 MySQL 从 xcode 更新为 PHP

PHP Apple APNS 读取即时通知 Status_code

java - 读取数据库后在 Java 中捕获异常的正确方法

arrays - Swift 3 中数组平衡点的公共(public)函数

php - 优化具有大量线程的 PHP 算法?

php - 拉拉维尔 5 : PHP variable shared by all methods of controller

mysql - 将文本从 bash 脚本插入到 mysql 数据库并丢失格式

MySQL 查询性能 : individuate and rewrite faster query

php - 如何处理带有数组的对象以访问特定数据?

php - Array_walk 遍历 10000 个项目。可以优化吗?