Вопрос внешнего ключа. Вставьте нормально в консоли, но не в php. Идентификатор дублируется во всех строках столбца таблицы - PullRequest
0 голосов
/ 22 июля 2011

У меня есть ограничение внешнего ключа (не каскадное). У идентификатора есть внешний ключ, который связывает его с другой таблицей INNODB.Обе таблицы имеют int (11.)

Если я выполню этот запрос в консоли

insert into TABLE1(ID)values('5'); -success 

php:

Попытка # 1

$id=5;
mysql_query("insert into TABLE1(ID)values('$id')"); -nothing happens

Попытка # 2

$id=5;
mysql_query("insert into TABLE1(ID)values('$id')"); -all existing rows become 5.

Если я уберу ограничение, оно будет нормально работать в php.Что может быть причиной этого?

СТРУКТУРА ТАБЛИЦЫ:

CREATE TABLE `table1` (
  `ID` int(11) NOT NULL,
  `a` int(11) DEFAULT NULL,
  `b` int(11) DEFAULT NULL,
  CONSTRAINT `FK_ID` FOREIGN KEY (`ID`) REFERENCES `table2` (`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
SET character_set_client = @saved_cs_client;


CREATE TABLE `table2` (
  `ID` int(11) NOT NULL,
  `c` int(11) DEFAULT NULL,
  `d` int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
SET character_set_client = @saved_cs_client;

Содержимое таблицы 2 (относительно внешнего ключа таблицы 1)

ТАБЛИЦА 2

ID
1
2
3
4
5
6
7
8

ТАБЛИЦА 1 (после второй попытки вставки)

ID
5
5
5
5
5
5
5
5
5
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...