我有2张桌子:
university:
university
university_id(p.k) | university_name
和user:
user
uid | name | university_id(f.k)
如何在用户表中保持university_id NULL ?
university_id
我只写1条查询,我的查询是:
INSERT INTO user (name, university_id) VALUES ($name, $university_id);
这里$university_id可以从前端空。
$university_id
university 表格将由我默认设置。
在前端,学生将选择大学名称,根据该名称university_id将传递到user表格,但是如果学生未选择任何大学名称,则应将null值传递给user表格中的university_id字段。
只允许university_id表的一列user允许NULL值,这样您就可以保存 null 。
NULL
CREATE TABLE user ( uid INT NOT NULL, Name VARCHAR(30) NOT NULL, university_ID INT NULL, -- <<== this will allow field to accept NULL CONSTRAINT user_fk FOREIGN KEY (university_ID) REFERENCES university(university_ID) )
更新1
根据您的评论,您应该插入NULL而不是''。
''
insert into user (name,university_id) values ('harjeet', NULL)
更新2
$university_id = !empty($university_id) ? "'$university_id'" : "NULL"; insert into user (name,university_id) values ('harjeet', $university_id);
作为一个旁注,查询是脆弱的SQL Injection,如果值( 小号 变量)从外面走了进来。请查看下面的文章,以了解如何防止它。通过使用,PreparedStatements您可以摆脱在值周围使用单引号的麻烦。
SQL Injection
PreparedStatements