Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 获取外键_Php_Sql - Fatal编程技术网

Php 获取外键

Php 获取外键,php,sql,Php,Sql,我是一个自学成才的程序员,从几天开始我就非常困惑。我在一个招聘网站的后台工作。用户可以发布作业,我有三个表:作业,关键字和要求。job\u id是jobs的主键,也是关键字表中的外键。现在,我只能在作业表中插入数据,而无法在关键字表中键入任何内容。每个job\u id可以有多个关键字 SQL-作业表 CREATE TABLE `jobs` ( `title` text NOT NULL, `type` text NOT NULL, `location` text NOT NULL,

我是一个自学成才的程序员,从几天开始我就非常困惑。我在一个招聘网站的后台工作。用户可以发布作业,我有三个表:
作业
关键字
要求
job\u id
jobs
的主键,也是
关键字表中的外键。现在,我只能在
作业
表中插入数据,而无法在
关键字
表中键入任何内容。每个
job\u id
可以有多个
关键字

SQL-作业表

CREATE TABLE `jobs` (
  `title` text NOT NULL,
  `type` text NOT NULL,
  `location` text NOT NULL,
  `salary` int(11) NOT NULL,
  `description` text NOT NULL,
  `date` date NOT NULL,
  `job_id` int(11) NOT NULL AUTO_INCREMENT,
  PRIMARY KEY (`job_id`)
) ENGINE=InnoDB AUTO_INCREMENT=34 DEFAULT CHARSET=latin1;
    CREATE TABLE `keywords` (
          `keyword_id` int(11) NOT NULL AUTO_INCREMENT,
          `keyword` text NOT NULL,
          `job_id` int(11) NOT NULL,
          PRIMARY KEY (`keyword_id`),
          KEY `job_id` (`job_id`),
          CONSTRAINT `keywords_ibfk_1` FOREIGN KEY (`job_id`) REFERENCES `jobs` (`job_id`)
        ) ENGINE=InnoDB AUTO_INCREMENT=28 DEFAULT CHARSET=latin1;
SQL-关键字表

CREATE TABLE `jobs` (
  `title` text NOT NULL,
  `type` text NOT NULL,
  `location` text NOT NULL,
  `salary` int(11) NOT NULL,
  `description` text NOT NULL,
  `date` date NOT NULL,
  `job_id` int(11) NOT NULL AUTO_INCREMENT,
  PRIMARY KEY (`job_id`)
) ENGINE=InnoDB AUTO_INCREMENT=34 DEFAULT CHARSET=latin1;
    CREATE TABLE `keywords` (
          `keyword_id` int(11) NOT NULL AUTO_INCREMENT,
          `keyword` text NOT NULL,
          `job_id` int(11) NOT NULL,
          PRIMARY KEY (`keyword_id`),
          KEY `job_id` (`job_id`),
          CONSTRAINT `keywords_ibfk_1` FOREIGN KEY (`job_id`) REFERENCES `jobs` (`job_id`)
        ) ENGINE=InnoDB AUTO_INCREMENT=28 DEFAULT CHARSET=latin1;
PHP(我知道代码还不安全,但我只想先了解一下)

获取插入id并使用它:

mysqli_query($link, ".....");
$insert_id = mysqli_insert_id($link);

foreach ($keywords as $keyword){
    mysqli_query($link, "INSERT INTO keywords (`job_id`, `keyword`) VALUES ($insert_id, '$keyword')");
}

谢谢,我将尝试仅当此列实际自动递增时它才起作用。您要查询什么?在
关键字
表中创建一个新行,将
作业id
作为外键,
关键字id
作为主键,并将
关键字
存储在数组中: