클라이언트가 PHP 파일을 요청하면 서버는 구문 분석, 실행 및 출력의 세 가지 주요 단계를 차례로 작성합니다.
서버는 먼저 PHP 코드를 구문 분석하고 스크립트를 실행 가능한 지침으로 변환합니다. PHP 파일 <?php 시작, ?> 끝.
구문 분석이 완료된 후 서버는 PHP 스크립트를 실행하여 변수, 기능 및 논리를 처리합니다. 실행 중에 서버는 스크립트의 코드를 서버 환경의 변수 및 함수와 구별하여 올바르게 실행되도록합니다.
코드 실행이 완료된 후 서버는 클라이언트, 일반적으로 HTML, JSON, XML 또는 그림 형식에서 결과를 반환합니다.
PHP에서 MySQL 데이터베이스에 연결하면 일반적으로 다음과 같이 MySQLI 확장 기능이 사용됩니다.
$username = "사용자 이름";
$password = "비밀번호";
$hostname = "호스트 이름";
$database = "데이터베이스 이름";
// 연결 객체를 만듭니다
$conn = new mysqli($hostname, $username, $password, $database);
// 연결이 성공했는지 확인하십시오
if ($conn->connect_error) {
die("연결이 실패했습니다: " . $conn->connect_error);
}
echo "연결이 성공적으로 연결됩니다";
위의 코드는 호스트 이름, 사용자 이름, 비밀번호 및 데이터베이스 이름을 전달하여 연결을 설정합니다. 연결이 성공하면 $ Conn을 통해 SQL 문을 실행할 수 있습니다.
MySQLI 객체를 사용하여 간단한 쿼리를 수행하는 코드는 다음과 같습니다.
$sql = "SELECT * FROM 테이블 이름";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
// 각 레코드를 출력하십시오
while($row = $result->fetch_assoc()) {
echo "id: " . $row["id"] . " - Name: " . $row["name"] . "<br>";
}
} else {
echo "쿼리 결과가 없습니다";
}
$conn->close();
쿼리를 실행 한 후 코드는 결과를 통과하고 데이터를 하나씩 출력하고 마지막으로 데이터베이스 연결을 닫습니다.
SQL 주입은 데이터베이스 보안에 대한 일반적인 위협입니다. 효과적인 보호 조치에는 다음이 포함됩니다.
다음은 pdo anti-reisement를 사용한 코드 예제를 보여줍니다.
$sql = "SELECT * FROM 테이블 이름 WHERE name = :name";
$stmt = $conn->prepare($sql);
$stmt->bindValue(':name', $name);
$stmt->execute();
$result = $stmt->fetch(PDO::FETCH_ASSOC);
var_dump($result);
$conn->close();
준비 방법을 통한 SQL 및 BindValue 결합 파라미터를 사전 컴파일하면 악의적 인 SQL 주입을 효과적으로 피하고 데이터 보안을 보장 할 수 있습니다.