gpt4 book ai didi

php - RedBean PHP 不会插入到两个表中

转载 作者:行者123 更新时间:2023-11-29 01:58:47 25 4
gpt4 key购买 nike

我有两个 MySQL 表:

user

email

电子邮件表有一个来自用户的外键。我在用户表中插入一条记录并获取插入 ID,然后插入到电子邮件表中。

我在 RedBean 中是这样做的

$user = R::dispense('user');
$user->name = 'John' ;

$email = R::dispense('email');
$email->email = $this->Email;
$email->user_id = R::store($user);

R::store($email);

但只有用户表被填充。没有记录进入电子邮件表。

这可能是什么问题?

-- -----------------------------------------------------
-- Table `mydb`.`User`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `mydb`.`User` (
`id` INT NOT NULL AUTO_INCREMENT,
`firstname` VARCHAR(45) NULL,
`middlename` VARCHAR(45) NULL,
`lastname` VARCHAR(45) NULL,
`email` VARCHAR(255) NULL,
`password` VARCHAR(255) NULL,
`address` VARCHAR(255) NULL,
`gender` ENUM('m','f') NULL DEFAULT 'm',
`birthday` VARCHAR(45) NULL,
`profilepic` VARCHAR(255) NULL,
`datecreated` DATETIME NULL,
`lastlogin` DATETIME NULL,
`lastactive` DATETIME NULL,
`mobilePhone` VARCHAR(45) NULL,
`businessPhone` VARCHAR(45) NULL,
`homePhone` VARCHAR(45) NULL,
`faxNumber` VARCHAR(45) NULL,
`drivingLicence` VARCHAR(45) NULL,
`passportNum` VARCHAR(45) NULL,
`bloodgrp` VARCHAR(5) NULL,
PRIMARY KEY (`id`))
ENGINE = InnoDB;

和电子邮件表

-- -----------------------------------------------------
-- Table `mydb`.`email`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `mydb`.`email` (
`id` INT NOT NULL AUTO_INCREMENT,
`email` VARCHAR(255) NOT NULL,
`verifyCode` VARCHAR(255) NULL,
`verified` TINYINT(1) NULL,
`User_id` INT NOT NULL,
PRIMARY KEY (`id`, `User_id`),
INDEX `fk_email_User1_idx` (`User_id` ASC),
CONSTRAINT `fk_email_User1`
FOREIGN KEY (`User_id`)
REFERENCES `mydb`.`User` (`id`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;

除了当我输入原始 mysql 时,插入按预期工作。我认为我的redbean 使用有问题。我搜索了很多地方,但我无法弄清楚。

最佳答案

换行

$email->user_id = R::store($user);
R::store($email);

$user->email = $email;
R::store($user);

假设您处于流畅模式,关系将自动创建。

Redbean 引擎将创建外键关系并在 email 表中为您设置一个名为 user_id 的列。您甚至不必存储 $email 对象,这在存储 $user 对象时发生。

关于php - RedBean PHP 不会插入到两个表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20773881/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com