"프로필"이라는 데이터베이스가 하나 있습니다.외래 키가있는 테이블에 삽입 - PHP PDO
사용자 :
USER_ID
이름
이메일
비밀번호
프로필 : 이 데이터베이스는 "사용자"와 "프로파일"라는 두 개의 테이블이 포함
FIRST_NAME을 PROFILE_ID
을
last_name
요약
PHP와 PDO를 사용하여 CRUD 시나리오를 작성 중입니다. 현재, 새로운 프로파일 항목을 "추가"(생성)하려고합니다. 할당 상태 : "현재 로그인 한 사용자의 외래 키 user_id (항목)을 표시해야합니다."
PDO에서 두 테이블을 함께 연결하는 방법을 모르겠다.
또한Fatal error: Uncaught PDOException: SQLSTATE[23000]: Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fails (
profiles
.profile
, CONSTRAINTprofile_ibfk_2
FOREIGN KEY (user_id
) REFERENCESusers
(user_id
) ON DELETE CASCADE ON UPDATE CASCADE) in /websites-mamp/asmt-profile/add.php:32 Stack trace: #0 /websites-mamp/asmt-profile/add.php(32): PDOStatement->execute(Array) #1 {main} thrown in /websites-mamp/asmt-profile/add.php on line 32
, CONSTRAINT profile_ibfk_2
무슨 뜻 : 나는 다음과 같은 오류는 무엇입니까?
내 코드는 다음과 같습니다
<?php
session_start();
require_once "pdo.php";
// Validate field entries
if (isset($_POST['first_name']) && isset($_POST['last_name']) && isset($_POST['summary'])) {
$sql = "INSERT INTO profile (first_name, last_name, summary)
VALUES (:first_name, :last_name, :summary)";
$stmt = $pdo->prepare($sql);
$stmt->execute(array(
':first_name' => $_POST['first_name'],
':last_name' => $_POST['last_name'],
':summary' => $_POST['summary']
));
$_SESSION['success'] = "Record added";
header("Location: index.php");
return;
}
?>
<!DOCTYPE html>
<html>
<head>
<title>Add</title>
</head>
<body>
<div class="container">
<form method="post">
<p>First Name:
<input type="text" name="first_name" /></p>
<p>Last Name:
<input type="text" name="last_name" /></p>
<p>Summary:
<textarea type="text" name="summary"></textarea></p>
<input type="submit" value="Add">
<input type="submit" name="logout" value="Cancel">
</form>
</div>
</body>
</html>
나는 외부 키에 어디 코드를 연결합니까? WHERE 절을 시도했지만 도움이되지 않습니다. 누군가 쉽게 이것을 설명 할 수 있습니까? 비슷한 문제에 대해 StackOverflow를 살펴 보았습니다.하지만 대부분이 내 머리 위에 있거나 PDO가 아닙니다. 도움이된다면 고맙습니다.
INSERT는 where 절을 허용하지 않습니다. 이 문제를 해결하려면 외래 키를 추가하는 것과 같은 방식으로 외래 키를 추가하면됩니다. – Akintunde007
@MariaGosur 저장 프로 시저를 사용해야한다고 생각합니다. – user3441151
@ user3441151 왜 OP는 저장 프로 시저를 사용해야합니까? –