我有關於PHP數據庫和表格的查詢:空或空的外鍵
我有以下用戶表
CREATE TABLE IF NOT EXISTS `login`.`usuarios` (
`nombres` VARCHAR(30) NULL,
`apellidos` VARCHAR(30) NULL,
`cedula` VARCHAR(13) NOT NULL,
`telefono` VARCHAR(15) NULL,
`direccion` VARCHAR(45) NULL,
`sexo` VARCHAR(10) NULL,
`sesion_id` INT(10) NOT NULL,
PRIMARY KEY (`cedula`),
INDEX `fk_usuarios_sesion_idx` (`sesion_id` ASC),
CONSTRAINT `fk_usuarios_sesion`
FOREIGN KEY (`sesion_id`)
REFERENCES `login`.`sesion` (`id`)
ON DELETE CASCADE
ON UPDATE CASCADE)
ENGINE = InnoDB;
和我有會議表
CREATE TABLE IF NOT EXISTS `login`.`sesion` (
`id` INT(10) NOT NULL AUTO_INCREMENT,
`correo` VARCHAR(45) NULL,
`usuario` VARCHAR(10) NULL,
`password` VARCHAR(100) NULL,
`last_session` DATETIME NULL,
`activacion` INT NULL,
`token` VARCHAR(40) NULL,
`token_password` VARCHAR(100) NULL,
`password_request` INT(11) NULL,
`id_tipo` INT(11) NULL,
`estatus` INT(2) NULL,
PRIMARY KEY (`id`))
ENGINE = InnoDB;
他們彼此相關從1到1.主會話密鑰是作爲外鍵我n個用戶。
在PHP中,我有一個表單供用戶在我的系統上註冊。所有東西都在表格中正常插入,但我只有一個問題,因爲如果在sesions表中ID是自動增量的,因爲在用戶中它本身是外來的也不會被填充?
在這一點上,我已經在我的系統上註冊了幾個用戶,並且一切都插入正常,但外鍵總是空的,它與會話中分配自動增量的號碼沒有關聯。
要插入我這樣做以下列方式:
function registraUsuario($nombres, $apellidos, $cedula, $telefono, $direccion, $sexo){
global $mysqli;
$stmtr= $mysqli->prepare("INSERT INTO usuarios (nombres, apellidos, cedula, telefono, direccion, sexo) VALUES(?,?,?,?,?,?)");
$stmtr->bind_param('ssssss', $nombres, $apellidos, $cedula, $telefono, $direccion, $sexo);
if ($stmtr->execute()){
return true;
} else {
return 0;
}
}
function registraSesion($email, $usuario, $pass_hash, $activo, $token, $tipo_usuario, $estatus){
global $mysqli;
$stmt = $mysqli->prepare("INSERT INTO sesion (correo, usuario, password, activacion, token, id_tipo, estatus) VALUES(?,?,?,?,?,?,?)");
$stmt->bind_param('sssisii', $email, $usuario, $pass_hash, $activo, $token, $tipo_usuario, $estatus);
if ($stmt->execute()){
return $mysqli->insert_id;
} else {
return 0;
}
}
另外我必須說,我有外鍵爲NULL,因爲如果我不把它NULL,只是爲用戶註冊的數據(名稱,姓氏,dni ..)沒有註冊......但是如果註冊沒有任何不便之處,除了外鍵以外,其值爲NULL。
請問,如果你能幫助我解決這個問題,或者你能告訴我我該怎麼做或者我做錯了什麼?
你在哪裏嘗試用會話ID更新用戶表? – Shadow
通過發佈更新聲明... – Shadow
@Shadow 這就是我想要做的 我想知道我是如何做的,以便在用戶表中的外部sesion_id根據它作爲主要的ID進行更新在桌面上鍵入。 – rodrigo2324