为同一个ID插入多个行语法错误


INSERT multiple ROWS for same ID Syntax Error

我想插入很多行到我的sql数据库,但它给了我一个错误。我有3个字段(object_id,键,值),对于来自不同表的每个对象,我想以长文本格式存储额外的值,没有自动增量SQL服务器错误说我使用错误的语法。我试过它与",",也没有一切,但它不会工作我做错了什么?

  $ff = $db->last_inserted_id();
    $query2 = "INSERT INTO object_meta (`object_id`, `key`, `value`)
      VALUES ($ff, 'title', '$title'),
      VALUES ($ff, 'nice_url', '$nice_url'),
      VALUES ($ff, 'menu_title', '$menutitle'),
      VALUES ($ff, 'content', '$text'),
      VALUES ($ff, 'description', '$description'),
      VALUES ($ff, 'keywords', '$keywords'),
      VALUES ($ff, 'status', '$status'),
      VALUES ($ff, 'date', '$date')";
    $db->query($query2) or die(mysql_error());

您只需要使用VALUES一次,即使您插入多行。

$query2 = "INSERT INTO object_meta (`object_id`, `key`, `value`)
  VALUES ($ff, 'title', '$title'),
         ($ff, 'nice_url', '$nice_url'),
         ($ff, 'menu_title', '$menutitle'),
         ($ff, 'content', '$text'),
         ($ff, 'description', '$description'),
         ($ff, 'keywords', '$keywords'),
         ($ff, 'status', '$status'),
         ($ff, 'date', '$date')";

我在Mac上测试了PHP 5.3和PDO,连接到Linux上运行的MySQL 5.6实例。

INSERT INTO 
    object_meta (`object_id`, `key`, `value`)
VALUES 
($ff, 'title', '$title'),
($ff, 'nice_url', '$nice_url'),
...

VALUES不能重复

试试改成:

  $ff = $db->last_inserted_id();
    $query2 = "INSERT INTO object_meta (`object_id`, `key`, `value`)
      VALUES ('$ff', 'title', '$title'),
      VALUES ('$ff', 'nice_url', '$nice_url'),
      VALUES ('$ff', 'menu_title', '$menutitle'),
      VALUES ('$ff', 'content', '$text'),
      VALUES ('$ff', 'description', '$description'),
      VALUES ('$ff', 'keywords', '$keywords'),
      VALUES ('$ff', 'status', '$status'),
      VALUES ('$ff', 'date', '$date')";
    $db->query($query2) or die(mysql_error());

(添加" to $ff ")