>  기사  >  백엔드 개발  >  PHP에서 SQL 문을 사용하는 방법

PHP에서 SQL 문을 사용하는 방법

王林
王林원래의
2023-05-20 16:51:282767검색

인기 있는 프로그래밍 언어인 PHP는 데이터베이스 작업을 위한 다양한 도구와 방법을 제공하며, 그 중 가장 일반적으로 사용되는 것은 SQL(Structured Query Language) 문입니다. SQL은 관계형 데이터베이스(RDBMS)에 액세스하고 관리하는 데 사용되는 언어로, 테이블, 행, 열을 조작하여 데이터를 저장하고 검색할 수 있습니다. 다음은 PHP에서 SQL 문을 사용하는 방법을 소개합니다.

  1. 데이터베이스에 연결

SQL 문을 사용하기 전에 먼저 데이터베이스에 연결해야 합니다. PHP에 내장된 mysqli(MySQL Improved Extension) 또는 PDO(PHP Data Objects)를 사용하여 구현할 수 있습니다:

1.1 mysqli 연결 방법:

$servername = "localhost"; //数据库主机名
$username = "username"; //数据库用户名
$password = "password"; //数据库密码
$dbname = "myDB"; //连接的数据库

// 创建连接
$conn = new mysqli($servername, $username, $password, $dbname);

// 检测连接
if ($conn->connect_error) {
    die("连接失败: " . $conn->connect_error);
} 

1.2 PDO 연결 방법:

$servername = "localhost"; //数据库主机名
$username = "username"; //数据库用户名
$password = "password"; //数据库密码
$dbname = "myDB"; //连接的数据库

try {
    $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
    // 设置 PDO 错误模式为异常
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    echo "连接成功"; 
}
catch(PDOException $e) {
    echo "连接失败: " . $e->getMessage();
}
  1. Query data

있습니다. 많은 SQL 문은 테이블의 데이터를 쿼리하는 데 사용됩니다. 다음은 몇 가지 일반적인 SQL 문입니다.

  • SELECT: 테이블에서 데이터를 선택하는 데 사용됩니다.
  • WHERE: 조건을 지정하고 조건에 맞는 기록을 지정하는 데 사용됩니다.
  • ORDER BY: 특정 조건에 따라 쿼리 결과를 정렬하는 데 사용됩니다.
  • GROUP BY: 일반적으로 집계 함수(SUM, AVG, COUNT 등)와 함께 사용되어 쿼리 결과를 그룹화하여 요약 데이터를 계산합니다.

다음은 mysqli와 PDO를 사용하여 데이터를 쿼리하는 예입니다.

2.1 mysqli를 사용하여 데이터 쿼리:

$sql = "SELECT id, name, email FROM users";
$result = $conn->query($sql);

if ($result->num_rows > 0) {
    // 输出数据
    while($row = $result->fetch_assoc()) {
        echo "id: " . $row["id"]. " - Name: " . $row["name"]. " - Email: " . $row["email"]. "<br>";
    }
} else {
    echo "0 结果";
}

2.2 PDO를 사용하여 데이터 쿼리:

$sql = "SELECT id, name, email FROM users";
$stmt = $conn->prepare($sql); 
$stmt->execute();

$result = $stmt->setFetchMode(PDO::FETCH_ASSOC); 
foreach($stmt->fetchAll() as $row) {
    echo "id: " . $row["id"]. " - Name: " . $row["name"]. " - Email: " . $row["email"]. "<br>";
}
  1. Insert data

테이블에 새 데이터를 삽입할 때 , INSERT INTO 문을 사용합니다. 새로운 데이터를 삽입하는 기본 형식은 다음과 같습니다.

INSERT INTO table_name (column1, column2, column3, ...)
VALUES (value1, value2, value3, ...);

다음은 mysqli와 PDO를 사용하여 데이터를 삽입하는 예입니다.

3.1 mysqli를 사용하여 데이터 삽입:

$sql = "INSERT INTO users (name, email, password)
VALUES ('John Doe', 'john@example.com', '123456')";

if ($conn->query($sql) === TRUE) {
    echo "新记录插入成功";
} else {
    echo "Error: " . $sql . "<br>" . $conn->error;
}

3.2 PDO를 사용하여 데이터 삽입:

$sql = "INSERT INTO users (name, email, password)
VALUES ('John Doe', 'john@example.com', '123456')";
$conn->exec($sql);
echo "新记录插入成功";
  1. Update data

Update 데이터를 검색하려면 UPDATE 문을 사용합니다. UPDATE 문의 기본 형식은 다음과 같습니다.

UPDATE table_name
SET column1 = value1, column2 = value2, ...
WHERE condition;

다음은 mysqli와 PDO를 사용하여 데이터를 업데이트하는 예입니다.

4.1 mysqli를 사용하여 데이터 업데이트:

$sql = "UPDATE users SET email='john_doe@example.com' WHERE id=1";

if ($conn->query($sql) === TRUE) {
    echo "记录更新成功";
} else {
    echo "Error: " . $sql . "<br>" . $conn->error;
}

4.2 PDO를 사용하여 데이터 업데이트:

$sql = "UPDATE users SET email='john_doe@example.com' WHERE id=1";
$conn->exec($sql);
echo "记录更新成功";
  1. 데이터 삭제

데이터 삭제 , DELETE 문을 사용합니다. DELETE 문의 기본 형식은 다음과 같습니다.

DELETE FROM table_name WHERE condition;

다음은 mysqli와 PDO를 사용하여 데이터를 삭제하는 예입니다.

5.1 mysqli를 사용하여 데이터 삭제:

$sql = "DELETE FROM users WHERE id=1";

if ($conn->query($sql) === TRUE) {
    echo "记录删除成功";
} else {
    echo "Error: " . $sql . "<br>" . $conn->error;
}

5.2 PDO를 사용하여 데이터 삭제:

$sql = "DELETE FROM users WHERE id=1";
$conn->exec($sql);
echo "记录删除成功";

요약: 언제 PHP 및 SQL 문 사용 이 작업을 수행할 때 SQL 주입을 방지하도록 주의해야 합니다. mysqli의 준비된 문이나 PDO의 준비된 문을 사용하면 SQL 주입 공격을 피할 수 있습니다. 그러나 mysqli나 PDO를 사용하여 데이터베이스를 운영하는 것은 데이터베이스 보안을 보장할 수 있으며, MySQL 애플리케이션을 작성할 때에는 프로그램과 데이터베이스 간의 부담을 줄이기 위해 PDO나 mysqli를 최대한 활용하는 것이 좋다.

위 내용은 PHP에서 SQL 문을 사용하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.