案例:
我有以下查询。如果我要保存的内容是新的,则变量$ DB-id是一个空字符串。字段module_id是我的主键。会发生的是,此查询始终使用module_id =>更新行。 0
问题
将空变量作为主键传递总是更新第0行而不是插入新变量。
$this->db->query("INSERT INTO modules_text
(
module_id,
module_content,
module_page_idx,
module_post_id
)
VALUES (
'{$DB_id}',
'{$content['text']}',
'{$content['idx']}',
'{$post_id}'
)
ON DUPLICATE KEY
UPDATE module_content = '{$content['text']}',
module_page_idx = '{$content['idx']}'
");
有没有人知道如何告诉MYSQL创建一个新行?任何帮助非常感谢!!!!非常感谢!!!
Saludos Sacha!
答案 0 :(得分:1)
您可能需要将主键字段设置为自动增量。下面是一个例子。
CREATE TABLE tablename (
id MEDIUMINT NOT NULL AUTO_INCREMENT,
name CHAR(30) NOT NULL,
PRIMARY KEY (id))
答案 1 :(得分:-1)
我认为你需要给UPDATE一个WHERE吗? 例如:
$this->db->query("INSERT INTO modules_text
(
module_id,
module_content,
module_page_idx,
module_post_id
)
VALUES (
'{$DB_id}',
'{$content['text']}',
'{$content['idx']}',
'{$post_id}'
)
ON DUPLICATE KEY
UPDATE `module_content` = '{$content['text']}',
`module_page_idx` = '{$content['idx']}'
WHERE
`module_id` = '{$content['id']}'
");
不要误以为是xD,乍看之下只是猜测。