English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

PHP 기본 튜토리얼

PHP 고급 튜토리얼

PHP & MySQL

PHP 참조 설명서

PHP MySQL 데이터 삽입

이 튜토리얼에서는 PHP를 사용하여 MySQL 테이블에 기록을 삽입하는 방법을 배울 것입니다.

MySQL 데이터베이스 테이블에 데이터 삽입

지금까지 MySQL에서 데이터베이스와 테이블을 생성하는 방법을 알게 되었습니다. 이 튜토리얼에서는 SQL 쿼리를 사용하여 테이블에 기록을 삽입하는 방법을 배울 것입니다.

INSERT INTO문장이 데이터베이스 테이블에 새 행을 삽입하는 데 사용됩니다。

적절한 값을 가진 INSERT INTO 문을 사용하여 SQL 쿼리를 실행하십시오. 그런 다음, 데이터를 테이블에 삽입하기 위해 PHP mysqli_query() 함수에 INSERT 쿼리를 전달하여 실행합니다. 다음은 이를 시각화한 예제입니다. 이는first_namelast_nameemail필드의 값을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();
?>

예제: PDO 방식

<?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();
?>

예제: PDO 방식

<?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 문장 내에서는 필요에 따라 여러 개의 개행 문자가 있을 수 있지만, 개행 문자가 키워드, 값, 표현식 등을 해치지 않도록 해야 합니다.

HTML 양식에서 데이터를 데이터베이스에 삽입

이전 장에서 PHP 스크립트에서 데이터를 데이터베이스에 삽입하는 방법을 배웠습니다. 지금은 HTML 양식에서 얻은 데이터를 데이터베이스에 삽입하는 방법을 보겠습니다. 새로운 기록을 추가할 수 있는 HTML 양식을 만들어보겠습니다.인원표.

단계1HTML 양식을 구축하기 위해

이는 간단한 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>
테스트를 해보세요‹/›

단계2양식 데이터 검색 및 삽입

위의 예제에서 사용자가 추가 기록 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();
?>

예제: PDO 방식

<?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를 사용하여 사용자 입력을 정리하고 검증하는 관련 정보를 더 알아보세요.