MYSQL - 空字符串== 0问题(使用主键0更新行而不是插入)

发布于 2024-10-05 07:49:28 字数 1107 浏览 3 评论 0原文

实际上这已经起作用了,我不知道我改变了什么,所以我现在遇到了这个问题。几乎尝试了一切。

案例:
我有以下查询。如果我要保存的内容是新的,则变量 $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 创建一个新行吗???非常感谢任何帮助!非常感谢!!!

萨卢多斯萨沙!

actually this already worked and i have no idea what i've changed so that i run into this problem now. Tried nearly everything.

The case:
I have the following query. The variable $DB-id is an empty string if the content i want to save is new. The field module_id is my primary key. What happens is that this query always updates the row with the module_id => 0.

The problem
Passing an empty variable as the primary key always updates row 0 instead of inserting a new one.

$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']}'
                ");

Does anybody have an idea how i can tell MYSQL to create a new row??? Any help is very appreciated!!!! Thank you very much!!!

Saludos Sacha!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

却一份温柔 2024-10-12 07:49:28

您可能需要将主键字段设置为自动增量。下面是一个例子。

CREATE TABLE tablename (
 id MEDIUMINT NOT NULL AUTO_INCREMENT,
 name CHAR(30) NOT NULL,
 PRIMARY KEY (id)) 

You may need to set your primary key field to auto increment. An example is below.

CREATE TABLE tablename (
 id MEDIUMINT NOT NULL AUTO_INCREMENT,
 name CHAR(30) NOT NULL,
 PRIMARY KEY (id)) 
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文