//去掉空格 $company = str_replace(' ', '', $_POST[“公司”]); //哈希密码 $password_hash =password_hash($_POST[“密码”], PASSWORD_DEFAULT); // 创建新的运算符 $mysql = 需要 __DIR__ 。 “/database.php”; $sql =“INSERT INTO 运算符(名字、姓氏、电子邮件、密码哈希、公司) 值(?,?,?,?,?)”; $stmt = $mysql->stmt_init(); if ( ! $stmt -> 准备($sql)){ die("SQL 错误:" . $mysql->error); } $stmt->bind_param(“sssss”, $_POST[“名字”], $_POST[“姓氏”], $_POST[“电子邮件”], $密码哈希值, $公司); if (!$stmt->execute()) { die($mysqli->error . " " . $mysqli->errno); } //创建新的公司表 $sql = "创建表$company ( id INT 无符号自动递增主键, 名字 VARCHAR(128) NOT NULL, 姓氏 VARCHAR(128) NOT NULL, 电子邮件 VARCHAR(255) NOT NULL UNIQUE, 公司 VARCHAR(128), 贷方 VARCHAR(60), 电话 VARCHAR(60))"; if (!$mysql->query($sql)) { die(“创建表失败:”。$mysql->error); } $sql =“插入$company(名字,姓氏,电子邮件,公司,信用,电话) 值(?,?,?,?,?,?)”; $stmt = $mysql->stmt_init(); if ( ! $stmt -> 准备($sql)){ die("SQL 错误:" . $mysql->error); } $stmt->bind_param(“ssssss”, $_POST[“名字”], $_POST[“姓氏”], $_POST[“电子邮件”], $公司, $_POST[“信用”], $_POST[“电话”]); if ($stmt->execute()) { header(“位置:signup_success.php”); 退出;</pre></p>
P粉1868974652023-09-06 15:21:05
您应该有一个预定义的公司表,而不是单独的 company_name 表。您也不应该根据用户输入创建表。
预先创建公司表:
CREATE TABLE companies ( id INT PRIMARY KEY AUTO_INCREMENT, company_name VARCHAR(255), email VARCHAR(255), phone VARCHAR(20) );
然后您可以将数据INSERT
到此表中:
$stmt = $conn->prepare("INSERT INTO companies (company_name, email, phone) VALUES (?, ?, ?)"); //Example company data $companyName = "Example Company"; $email = "info@example.com"; $phone = "123-456-7890"; $stmt->bind_param("sss", $companyName, $email, $phone); $stmt->execute();
每个公司都插入到此表中。它们通过 id
列进行区分。
您还可以在operators
表上添加外键约束。
ALTER TABLE operators ADD COLUMN company_id INT, ADD CONSTRAINT key_constraint_company_id FOREIGN KEY (company_id) REFERENCES company(id);
如果您希望在删除操作员时删除公司数据,您可以执行DELETE CASCADE
:
ALTER TABLE operators ADD COLUMN company_id INT, ADD CONSTRAINT key_constraint_company_id FOREIGN KEY (company_id) REFERENCES company(id) ON DELETE CASCADE;