这一直困扰着我一两个星期。老实说,这很简单,但不知怎的,我只是无法正确地解决问题。
我有两张桌子:
用户
+---------+----------+----------+
| user_id | username | password |
+---------+----------+----------+
消息
+------------+----+---------+
| message_id | id | message |
+------------+----+---------+
//id(fk)references user_id
当我明确地插入信息时......
INSERT INTO message (id, username) VALUES ( '13', 'a;al;dld;ldladda');
...它被插入到message
表中,但不知怎的,当我这样做时(这就是我想要的)...
INSERT INTO message(id, username) VALUES (
(SELECT user_id FROM user WHERE username = '$this->username'), '$this->username'
);
......没有插入任何内容。我搜索了Google的深度以找到答案,但我对所有这些程序感到困惑,这些程序我已尝试但无法正常工作。我是MySQL的新手,我正在使用phpMyAdmin。
我想在插入id
时自动将主键message
插入到表中。这样我就可以知道哪个message
属于哪个user
。
答案 0 :(得分:0)
$ insert_into_database = $ db-> prepare(“INSERT INTO登录(用户名,密码)VALUES('$ this-> username','$ this-> password')”);
$ insert_into_database->执行();
$ id = $ db-> lastInsertId();
所以我现在得到了,所以基本上问题的一半已经解决了,我现在要做的是将$ id插入子表,这将把每个用户连接到多对多的消息关系。子表位于另一页上,当我执行此操作时,它无效。
$ insert_info_into = $ db-> prepare(“INSERT INTO info(id,message)VALUES('$ id','$ this-> message')”);
$ insert_info_into->执行();
我收到此错误。 注意:未定义的变量:第44行的C:\ xampp \ htdocs \ sandbox \ practice \ config.php中的id
所以我怎么能做到这一点可以让我有一个触发器或者其他我不知道该怎么做的东西。