2014-11-27 3 views
1

있는 테이블에 데이터를 추가 나는 여전히 같은 문제에 대한보고 및 몇 가지 솔루션을 테스트 ..외래 키

나는 두 개의 테이블이


두 테이블)

CREATE TABLE IF NOT EXISTS `tb_cadastro` (
    `id` int(11) NOT NULL AUTO_INCREMENT, 
    `id_quest` int(11) NOT NULL, 
    `name` varchar(20) NOT NULL, 
    `surname` varchar(20) NOT NULL, 
    `email` varchar(45) NOT NULL, 
    `password` varchar(35) NOT NULL, 
    `sex` varchar(4) NOT NULL, 
    PRIMARY KEY (`id`), 
    KEY `fk_id_quest` (`id_quest`) 
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=2 ;  
ALTER TABLE `tb_cadastro` 
    ADD CONSTRAINT `fk_id_quest` FOREIGN KEY (`id_quest`) REFERENCES `tb_quest` (`id_quest`) ON UPDATE NO ACTION; 

CREATE TABLE IF NOT EXISTS `tb_quest` (
    `id_quest` int(11) NOT NULL AUTO_INCREMENT, 
    `q1` varchar(1) NOT NULL, 
    `q2` varchar(1) NOT NULL, 
    `q3` varchar(1) NOT NULL, 
    `q4` varchar(1) NOT NULL, 
    `q5` varchar(1) NOT NULL, 
    `q6` varchar(1) NOT NULL, 
    `q7` varchar(1) NOT NULL, 
    `q8` varchar(1) NOT NULL, 

    PRIMARY KEY (`id_quest`), 
    UNIQUE KEY `id_quest` (`id_quest`) 
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=4 ;  

id_quest 의해 관련 691,363,210

문제는 tb_cadastro 표는 dB로 아무것도 추가하지뿐만 아니라 오류가 .. 테이블 tb_quest가 내가 문제가 있다는 결론에 도달

나는 또한 일반적으로 MySQL을 통해 tb_cadastro에 데이터를 추가 할 수 있습니다 일반적으로 데이터를 추가하지 보여주고 있다는 것입니다 당신이 솔루션이있는 경우 FK 제약 조건에 있었다, 그래서 나는 관계 FK를 제거하고 모든

내가 거기있는 모든 시도

을 열심히 그래서 감사하겠습니다

여기 내 PHP 코드의


<?php 
    session_start(); 

    require_once ("conexao.php"); 
    mysql_connect("$hostname", "$username", "$senhabd") or die(mysql_error()); 
    mysql_select_db($banco) or die(mysql_error()); 


    $_SESSION['Usuario'] = $_POST['Usuario']; 
    $_SESSION['S_usuario'] = $_POST['S_usuario']; 
    $_SESSION['Email'] = $_POST['Email']; 
    $_SESSION['C_email'] = $_POST['C_email']; 
    $_SESSION['Senha'] = $_POST['Senha']; 
    $_SESSION['C_senha'] = $_POST['C_senha']; 
    $_SESSION['Sexo'] = $_POST['Sexo']; 

    $_SESSION['q1'] = $_POST['q1']; 
    $_SESSION['q2'] = $_POST['q2']; 
    $_SESSION['q3'] = $_POST['q3']; 
    $_SESSION['q4'] = $_POST['q4']; 
    $_SESSION['q5'] = $_POST['q5']; 
    $_SESSION['q6'] = $_POST['q6']; 
    $_SESSION['q7'] = $_POST['q7']; 
    $_SESSION['q8'] = $_POST['q8']; 

    $insert="INSERT INTO tb_quest (q1,q2,q3,q4,q5,q6,q7,q8) VALUES('" . $_SESSION['q1'] . "','" . $_SESSION['q2'] . "','" . $_SESSION['q3'] . "','" . $_SESSION['q4'] . "','" . $_SESSION['q5'] . "','" . $_SESSION['q6'] . "','" . $_SESSION['q7'] . "','" . $_SESSION['q8'] . "')"or die (mysql_error()); 
    mysql_query($insert); 

    $id_quest = mysql_insert_id(); 
    //echo $id_quest; 

    $insert="INSERT INTO tb_cadastro (id_quest,name,surname,email,password,sex) VALUES($id_quest,'" . $_SESSION['Usuario'] . "','" . $_SESSION['S_usuario'] . "','" . $_SESSION['Email'] . "','" . $_SESSION['Senha'] . "','" . $_SESSION['Sexo'] . "','" . $_SESSION['Sexo'] . "')" or die (mysql_error()); 
    mysql_query($insert); 

?> 
+0

그것은 '이유 ... –

답변

0

PHP 나 mysql을하지 않지만 SQL 문자열 외부에서 $ id_quest 변수를 참조하고 싶습니다.

$insert="INSERT INTO tb_cadastro (id_quest,name,surname,email,password,sex) VALUES(" . $id_quest . ",'" . $_SESSION['Usuario'] . "','" . $_SESSION['S_usuario'] . "','" . $_SESSION['Email'] . "','" . $_SESSION['Senha'] . "','" . $_SESSION['Sexo'] . "','" . $_SESSION['Sexo'] . "')" or die (mysql_error()); 
+0

아니, didnt 한 근무, 와 내가 FK 관계없이 동일한 쿼리를 시도하고 그냥 괜찮 았는데을 알고 호기심, 아주 이상한 – Kvothe