我想在我的sql数据库中插入很多行,但它给了我一个错误。我有3个字段(object_id,键,值),并且对于来自不同表的每个对象,我想以longtext格式存储其他值,并且没有自动增量sql server错误说我使用了错误的语法。我用'',``尝试了它,并且没有一切,但它不会工作我做错了什么?
$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());
答案 0 :(得分:4)
即使您要插入多行,也只需要使用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实例。我确认这有效。
答案 1 :(得分:0)
INSERT INTO
object_meta (`object_id`, `key`, `value`)
VALUES
($ff, 'title', '$title'),
($ff, 'nice_url', '$nice_url'),
...
你不能重复价值
答案 2 :(得分:0)
尝试将其更改为:
$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());
(将''添加到$ ff)