我想插入很多行到我的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 ")