FOREIGN KEY ..关注

时间:2016-04-04 06:06:42

标签: php mysql foreign-keys

我已阅读并搜索了所有网站,但我发现的任何内容都不适合我...所以请帮助新手了解他做错了什么。

所以我正在尝试创建一个添加到收藏夹功能。  我需要创建3个表。前两个像魔术一样工作,但是第三个......好吧我用FOREIGN KEY搞错了

我没有收到任何错误消息,但它不会创建第3个表。

以下是我的代码:

<?php

$connect = mysql_connect("127.0.0.1","root","");

$db = mysql_select_db("mydb");



mysql_query("CREATE TABLE IF NOT EXISTS users

(
userid bigint,
firstname varchar(25),
lastname varchar(15),
email varchar(250),
gender varchar(10),
username varchar(15),
password varchar(15),
age int,
activ boolean,
date TIMESTAMP NULL default CURRENT_TIMESTAMP
)ENGINE=INNODB

");


mysql_query("CREATE TABLE IF NOT EXISTS products ( 
  productid int(11) NOT NULL AUTO_INCREMENT, 
  productname varchar(100) NOT NULL, 
  productdescription varchar(250) NOT NULL, 
  price decimal(6,2) NOT NULL, 
  PRIMARY KEY (`productid`) 
) ENGINE=INNODB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=7 "); 


mysql_query("CREATE TABLE IF NOT EXISTS favorites
(
  userid bigint NOT NULL,
  productid int(11) NOT NULL,
  PRIMARY KEY (userid, productid),
  FOREIGN KEY (userid) REFERENCES user (userid) ON DELETE CASCADE ON UPDATE CASCADE,
  FOREIGN KEY (productid) REFERENCES product (productid) ON DELETE CASCADE ON UPDATE CASCADE
)ENGINE=INNODB
");
echo "The DataBase was successfully created!";
mysql_close();

?>

2 个答案:

答案 0 :(得分:1)

外键是指不存在的表。
表格为usersproducts,而第三个表格将其称为userproduct(单数)。

答案 1 :(得分:0)

“user”表的“userid”必须是主键。