English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
이 튜토리얼에서는 PHP를 사용하여 MySQL 테이블에 기록을 삽입하는 방법을 배울 것입니다.
지금까지 MySQL에서 데이터베이스와 테이블을 생성하는 방법을 알게 되었습니다. 이 튜토리얼에서는 SQL 쿼리를 사용하여 테이블에 기록을 삽입하는 방법을 배울 것입니다.
INSERT INTO문장이 데이터베이스 테이블에 새 행을 삽입하는 데 사용됩니다。
적절한 값을 가진 INSERT INTO 문을 사용하여 SQL 쿼리를 실행하십시오. 그런 다음, 데이터를 테이블에 삽입하기 위해 PHP mysqli_query() 함수에 INSERT 쿼리를 전달하여 실행합니다. 다음은 이를 시각화한 예제입니다. 이는first_name,last_name및email필드의 값을persons테이블에 새 행을 삽입
<?php $link = mysqli_connect("localhost", "root", "", "demo"); // 연결 확인 if($link === false) {}} die("에러:연결할 수 없습니다。" . mysqli_connect_error()); } //삽입 쿼리 실행 시도 $sql = "INSERT INTO persons (first_name, last_name, email) VALUES ('Peter', 'Parker', '[email protected]')"; if(mysqli_query($link, $sql)){ echo "데이터 추가 성공."; } echo "에러: 실행할 수 없습니다. $sql." . mysqli_error($link); } //연결 닫기 mysqli_close($link); ?>
<?php $mysqli = new mysqli("localhost", "root", "", "demo"); //연결 확인 if($mysqli === false) { die("ERROR: Could not connect. " . $mysqli->connect_error); } //삽입 쿼리 실행 시도 $sql = "INSERT INTO persons (first_name, last_name, email) VALUES ('Peter', 'Parker', '[email protected]')"; if($mysqli-query($sql) === true) { echo "데이터 추가 성공."; } echo "에러: 실행할 수 없습니다. $sql." . $mysqli->error; } //연결 닫기 $mysqli->close(); ?>
<?php try{ $pdo = new PDO("mysql:host=localhost;dbname=demo", "root", ""); //PDO 오류 모드를 예외로 설정 $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); }); die("ERROR: Could not connect. " . $e->getMessage()); } //삽입 쿼리 실행 시도 try{ $sql = "INSERT INTO persons (first_name, last_name, email) VALUES ('Peter', 'Parker', '[email protected]')"; $pdo->exec($sql); echo "데이터 추가 성공."; }); die("에러: 실행할 수 없습니다. $sql. ". $e->getMessage()); } //연결 닫기 unset($pdo); ?>
기억하시면이전 장의 내용다음은idAUTO_INCREMENT 표시가 있는 필드는 있습니다. 이 표시자는 MySQL에게, 값이 지정되지 않았을 경우, 이전 값에 추가하여 값을 증가시키도록 알립니다.1자동으로 이 필드에 값을 할당합니다。
한 번에 단일 INSERT 쿼리를 통해 여러 행을 테이블에 삽입할 수도 있습니다. 이를 위해 INSERT INTO 문에서 여러 열 값 목록을 포함하십시오. 각 행의 열 값은 괄호로 묶여 있어야 하며, 콤마로 구분되어야 합니다.
우리는persons다음과 같이 테이블에 몇 줄 더 추가하십시오:
<?php $link = mysqli_connect("localhost", "root", "", "demo"); //연결 확인 if($link === false) {}} die("에러:연결할 수 없습니다。" . mysqli_connect_error()); } //삽입 쿼리 실행 시도 $sql = "INSERT INTO persons (first_name, last_name, email) VALUES ('John', 'Rambo', '[email protected]'), ('Clark', 'Kent', '[email protected]'), ('John', 'Carter', '[email protected]'), ('Harry', 'Potter', '[email protected]')"; if(mysqli_query($link, $sql)){ echo "레코드 추가 성공."; } echo "에러: 실행할 수 없습니다. $sql." . mysqli_error($link); } //연결 닫기 mysqli_close($link); ?>
<?php $mysqli = new mysqli("localhost", "root", "", "demo"); //연결 확인 if($mysqli === false) { die("ERROR: Could not connect. " . $mysqli->connect_error); } //삽입 쿼리 실행 시도 $sql = "INSERT INTO persons (first_name, last_name, email) VALUES ('John', 'Rambo', '[email protected]'), ('Clark', 'Kent', '[email protected]'), ('John', 'Carter', '[email protected]'), ('Harry', 'Potter', '[email protected]')"; if($mysqli-query($sql) === true) { echo "데이터 추가 성공."; } echo "에러: 실행할 수 없습니다. $sql." . $mysqli->error; } //연결 닫기 $mysqli->close(); ?>
<?php try{ $pdo = new PDO("mysql:host=localhost;dbname=demo", "root", ""); //PDO 오류 모드를 예외로 설정 $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); }); die("에러:연결할 수 없습니다。" . $e->getMessage()); } //삽입 쿼리 실행 시도 try{ $sql = "INSERT INTO persons (first_name, last_name, email) VALUES ('John', 'Rambo', '[email protected]'), ('Clark', 'Kent', '[email protected]'), ('John', 'Carter', '[email protected]'), ('Harry', 'Potter', '[email protected]')"; $pdo->exec($sql); echo "데이터 추가 성공."; }); die("에러: 실행할 수 없습니다. $sql. ". $e->getMessage()); } //연결 닫기 unset($pdo); ?>
현재,phpMyAdmin(http:)로 이동하십시오://localhost/phpmyadmin/),并检查보여줍니다데이터베이스에인원표 데이터.ID컬럼의 값은 이전ID의 값을 증가시킵니다1자동으로 할당됩니다.
주의: SQL 문장 내에서는 필요에 따라 여러 개의 개행 문자가 있을 수 있지만, 개행 문자가 키워드, 값, 표현식 등을 해치지 않도록 해야 합니다.
이전 장에서 PHP 스크립트에서 데이터를 데이터베이스에 삽입하는 방법을 배웠습니다. 지금은 HTML 양식에서 얻은 데이터를 데이터베이스에 삽입하는 방법을 보겠습니다. 새로운 기록을 추가할 수 있는 HTML 양식을 만들어보겠습니다.인원표.
이는 간단한 HTML 양식으로, 세 개의 텍스트 필드와 제출 버튼이 포함되어 있습니다.<input>필드와 제출 버튼이 있습니다.
<!DOCTYPE html> <html> head> <meta charset="UTF-8"> <title>기록 추가 양식</title> </head> <form action="insert.php" method="post"> <p> <label for="firstName">이름:</label> <input type="text" name="first_name" id="firstName"> </p> <p> <label for="lastName">성:</label> <input type="text" name="last_name" id="lastName"> </p> <p> <label for="emailAddress">이메일 주소:</label> <input type="text" name="email" id="emailAddress"> </p> <input type="submit" value="Submit"> </form> </html>테스트를 해보세요‹/›
위의 예제에서 사용자가 추가 기록 HTML 양식의 제출 버튼을 클릭하면, 양식 데이터가 "insert.php" 파일로 전송됩니다. "insert.php" 파일은 MySQL 데이터베이스 서버에 연결하여 PHP $_REQUEST 변수를 사용하여 양식 필드를 검색하고, 마지막으로 기록을 추가하기 위해 삽입 쿼리를 실행합니다. 이는 우리의 "insert.php" 파일의 전체 코드입니다:
<?php $link = mysqli_connect("localhost", "root", "", "demo"); //연결 확인 if($link === false) {}} die("ERROR: Could not connect. " . mysqli_connect_error()); } //사용자 입력을 안전하게 변환합니다 $first_name = mysqli_real_escape_string($link, $_REQUEST['first_name']); $last_name = mysqli_real_escape_string($link, $_REQUEST['last_name']); $email = mysqli_real_escape_string($link, $_REQUEST['email']); //삽입 쿼리 실행 시도 $sql = "INSERT INTO persons (first_name, last_name, email) VALUES ('$first_name', '$last_name', '$email')"; if(mysqli_query($link, $sql)){ echo "레코드 추가 성공."; } echo "에러: 실행할 수 없습니다. $sql." . mysqli_error($link); } //연결 닫기 mysqli_close($link); ?>
<?php $mysqli = new mysqli("localhost", "root", "", "demo"); //연결 확인 if($mysqli === false) { die("에러: 연결할 수 없습니다. " . $mysqli->connect_error); } //사용자 입력을 안전하게 변환합니다 $first_name = $mysqli->real_escape_string($_REQUEST['first_name']); $last_name = $mysqli->real_escape_string($_REQUEST['last_name']); $email = $mysqli->real_escape_string($_REQUEST['email']); //삽입 쿼리 실행 시도 $sql = "INSERT INTO persons (first_name, last_name, email) VALUES ('$first_name', '$last_name', '$email')"; if($mysqli-query($sql) === true) { echo "데이터 추가 성공."; } echo "에러: 실행할 수 없습니다. $sql." . $mysqli->error; } //연결 닫기 $mysqli->close(); ?>
<?php try{ $pdo = new PDO("mysql:host=localhost;dbname=demo", "root", ""); //PDO 오류 모드를 예외로 설정 $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); }); die("에러: 연결할 수 없습니다. ". $e->getMessage()); } //삽입 쿼리 실행 시도 try{ //CREATE PREPARE 문장 $sql = "INSERT INTO persons (first_name, last_name, email) VALUES (:first_name, :last_name, :email)"; $stmt = $pdo->prepare($sql); //파라미터를 문장에 바인딩 $stmt->bindParam(':first_name', $_REQUEST['first_name']); $stmt->bindParam(':last_name', $_REQUEST['last_name']); $stmt->bindParam(':email', $_REQUEST['email']); //준비된 문장 실행 $stmt->execute(); echo "데이터 추가 성공."; }); die("에러: 실행할 수 없습니다. $sql. ". $e->getMessage()); } // 연결 닫기 unset($pdo); ?>
다음 장에서 이 삽입 쿼리 예제를 확장하고, 다음과 같이 구현하여준비된 문장보안성과 성능을 더욱 높이기 위해 이를 더욱 발전시키기 위해
주의:mysqli_real_escape_string() 함수는 특수 문자를 응축하여 합법적인 SQL 문자열을 생성하여 방어SQL注入보안성
MySQL 데이터베이스 테이블에 양식 데이터를 삽입하는 매우 기본적인 예제입니다. 이 예제를 확장하여 더 많은 상호작용을 추가할 수 있습니다. 이를 위해 사용자 입력에 검증을 추가한 후 데이터베이스 테이블에 삽입합니다. 관련 내용을 확인하세요PHP 양식 검증의 튜토리얼을 통해 PHP를 사용하여 사용자 입력을 정리하고 검증하는 관련 정보를 더 알아보세요.