Я понял это!Там, где 2 проблемы:
Проблема одна : таблицы не были созданы правильно, а внешний ключ был неправильно подключен.У меня проблема с созданием таблиц с внешним ключом через меню phpmyadmin.Может быть, лучше использовать базу данных SQL и синтаксис создания таблицы:
CREATE DATABASE IF NOT EXISTS database_name;
USE database_name;
CREATE TABLE table_1
(
table_1_id int not null auto_increment primary key,
variable_1 varchar(255) not null,
variable_2 int(11),
...
variable_to_be_used_as_foreign_key text,
variable_n text,
) ENGINE=InnoDB;
CREATE TABLE table_2
(
table_2_id int not null auto_increment primary key,
variable_1 varchar(255) not null,
variable_2 int(11),
...
variable_n text,
variable_to_be_used_as_foreign_key text,
FOREIGN KEY fk_table_2(variable_to_be_used_as_foreign_key)
REFERENCES table_1(variable_to_be_used_as_foreign_key)
ON UPDATE CASCADE
ON DELETE RESTRICT
) ENGINE=InnoDB;
ОБРАТИТЕ ВНИМАНИЕ: переменная внешнего ключа должна быть добавлена в обе таблицы (я знаю, что это очевидно, но все же).
Проблема # 2 : произошел сбой в коде php.Я пропустил в подготовленном операторе ввод в столбце внешнего ключа во второй таблице, а именно:
$stmt=$link->prepare("INSERT INTO table_pre (height, weight) VALUE (?, ?)");
$stmt->bind_param("ii", $height, $weight);
вместо:
$stmt=$link->prepare("INSERT INTO table_pre (height, weight, female) VALUE (?, ?, ?)");
$stmt->bind_param("iii", $height, $weight, $female);