【问题标题】:Insert JSON array in mysql db from a php file从 php 文件在 mysql db 中插入 JSON 数组
【发布时间】:2013-10-17 14:09:01
【问题描述】:

您好,我有一个像这样的JSon 数组

   Array
  (
    [NTAy] => ALFA ROMEO
    [NTA0] => AUDI
    [NTEx] => BMW
    [NjAy] => CHEVROLET
    [NTEz] => CHRYSLER
    [NTE0] => CITROËN
    [NjAz] => DACIA
    [NjQ5] => DAEWOO
    [NTE3] => DAIHATSU
  )

我必须将它逐行插入数据库中,我使用过

foreach ($mata as $marca_id => $marca_name){
    $line = $line. "','" . $marca_id . "','". $marca_name . "','". $marca_name;
}
$line = substr($line, 0, strlen($line)-1);
$values[$i] = $line;
++$i;

$values =implode ( $values);
echo $values;
echo "<br />";

但在mysql插入

$data = mysql_query(" INSERT INTO jos_virtuemart_categories_ro_ro (virtuemart_category_id, category_name, slug) 
VALUES " .$values)

我收到一个错误,无法让它工作。有人可以帮帮我吗?

【问题讨论】:

  • $iforeach 循环之外做什么?您希望查询是什么?
  • @AmalMurali 我认为 OP 没有正确理解 INSERT 语句的工作原理,也没有循环。

标签: php mysql json


【解决方案1】:
foreach ($mata as $marca_id => $marca_name) {
    $id = intval($marca_id);
    $name = mysql_real_escape_string($marca_name);
    $values = "$id, '$name', '$name'";
    mysql_query("INSERT INTO jos_virtuemart_categories_ro_ro (virtuemart_category_id, category_name, slug) VALUES ($values)");
}

【讨论】:

    【解决方案2】:

    为什么不使用准备好的语句?尤其是当您正在获取用户生成的数据并将其输入数据库时​​。

    看起来你最终的 SQL 查询看起来像这样

    INSERT INTO jos_virtuemart_categories_ro_ro (virtuemart_category_id, category_name, slug) 
    VALUES 'NTAy','ALFA ROMEO','ALFA ROMEO','NTA0','AUDI','AUDI' etc
    

    您必须将其分解为多个查询

    【讨论】:

      猜你喜欢
      • 2012-10-15
      • 2010-10-04
      • 1970-01-01
      • 2022-11-11
      • 1970-01-01
      • 2014-06-16
      • 2013-02-26
      • 2015-09-25
      • 1970-01-01
      相关资源
      最近更新 更多