PostgreSQL - PHP 인터페이스: 초보자 가이드
안녕하세요, 야심찬 프로그래머 여러분! 오늘 우리는 PostgreSQL과 PHP의 세계로 흥미로운 여정을 떠납니다. 이 용어들이 외계어 같다면 걱정하지 마세요 - 이 튜토리얼이 끝나면 여러분은 이를 유창하게 말할 수 있을 것입니다!
설치
재미있는 내용으로 들어가기 전에 우리는 도구를 설정해야 합니다. 이는 요리 전에 주방을 준비하는 것과 같은 것입니다!
- 먼저, 공식 웹사이트(postgresql.org)에서 PostgreSQL을 설치합니다.
- 그다음, php.net에서 PHP를 설치합니다.
- 마지막으로, PHP용 PostgreSQL 확장을 설치해야 합니다.
Windows에서는 php.ini 파일에서 다음 줄을 주석을 풀어 확장을 활성화할 수 있습니다:
extension=php_pgsql.dll
Unix 계통의 시스템에서는 php-pgsql 패키지를 설치해야 할 수 있습니다:
sudo apt-get install php-pgsql
PHP 인터페이스 API
PHP는 PostgreSQL과 작업하기 위한 두 가지 주요 API를 제공합니다:
API | 설명 |
---|---|
pgsql | 원래 PostgreSQL 확장 |
PDO | PHP Data Objects, 여러 데이터베이스에 대한 일관된 인터페이스 |
이 튜토리얼에서는 pgsql 확장에 중점을 두겠습니다. 이는 PostgreSQL에 특화되어 있으며 몇 가지 독특한 기능을 제공합니다.
데이터베이스 연결
이제 모든 준비가 끝났으니 데이터베이스에 연결해 보겠습니다! 이는 우리의 데이터 집에 문을敲하는 것과 같습니다.
<?php
$host = "localhost";
$port = "5432";
$dbname = "mydb";
$user = "myuser";
$password = "mypassword";
$conn = pg_connect("host=$host port=$port dbname=$dbname user=$user password=$password");
if (!$conn) {
echo "에러가 발생했습니다.\n";
exit;
}
echo "성공적으로 연결되었습니다!\n";
?>
이 코드에서 우리는 pg_connect()
함수를 사용하여 연결을 설정합니다. 우리는 호스트, 포트, 데이터베이스 이름, 사용자 이름, 비밀번호와 같은 필요한 세부 정보를 제공합니다. 연결이 성공하면 "성공적으로 연결되었습니다!" 메시지를 볼 수 있습니다.
테이블 생성
이제 우리는 데이터 집 안에 들어와서 테이블을 생성해 보겠습니다. 이는 우리의 정보를 정리할 수 있는 책장을 짓는 것과 같습니다.
<?php
$query = "CREATE TABLE students (
id SERIAL PRIMARY KEY,
name VARCHAR(100) NOT NULL,
age INTEGER,
grade CHAR(1)
)";
$result = pg_query($conn, $query);
if (!$result) {
echo "에러가 발생했습니다.\n";
exit;
}
echo "테이블이 성공적으로 생성되었습니다!\n";
?>
여기서 우리는 SQL을 사용하여 "students"라는 테이블을 생성합니다. id 열의 SERIAL
유형은 각 새로운 항목에 대해 자동으로 증가합니다 - 이는 우리에게 책을 번호 매기는 로봇이 있는 것과 같습니다!
INSERT 연산
이제 우리의 테이블에 데이터를 추가해 보겠습니다. 이는 우리가 새로 지은 책장에 책을 넣는 것과 같습니다.
<?php
$query = "INSERT INTO students (name, age, grade) VALUES ($1, $2, $3)";
$result = pg_query_params($conn, $query, array('John Doe', 18, 'A'));
if (!$result) {
echo "에러가 발생했습니다.\n";
exit;
}
echo "데이터가 성공적으로 추가되었습니다!\n";
?>
우리는 pg_query_params()
를 사용하여 쿼리에 占位符($1, $2, $3)을 사용하고 있습니다. 이는 SQL 주입 공격을 방지하는 데 도움이 되는 더 안전한 방법입니다. 이는 책을 책장에 넣기 전에 책을 검사하는 보안 경비원과 같습니다!
SELECT 연산
이제 우리는 테이블에서 데이터를 검색해 보겠습니다. 이는 책장에서 책을 꺼내 읽는 것과 같습니다.
<?php
$query = "SELECT * FROM students";
$result = pg_query($conn, $query);
if (!$result) {
echo "에러가 발생했습니다.\n";
exit;
}
while ($row = pg_fetch_assoc($result)) {
echo "ID: " . $row['id'] . "\n";
echo "Name: " . $row['name'] . "\n";
echo "Age: " . $row['age'] . "\n";
echo "Grade: " . $row['grade'] . "\n\n";
}
?>
여기서 우리는 pg_fetch_assoc()
를 사용하여 결과의 각 행을 순회합니다. 이는 책을 펼쳐서 각 줄을 읽어나가는 것과 같습니다.
UPDATE 연산
occasionally, we need to change the information in our table. This is like erasing and rewriting a part of our book.
<?php
$query = "UPDATE students SET grade = $1 WHERE name = $2";
$result = pg_query_params($conn, $query, array('B', 'John Doe'));
if (!$result) {
echo "An error occurred.\n";
exit;
}
echo "Data updated successfully!\n";
?>
In this example, we're updating John Doe's grade to B. The WHERE
clause in our query is like a bookmark, helping us find exactly where we need to make changes.
DELETE Operation
Finally, sometimes we need to remove data from our table. It's like taking a book off the shelf and putting it in the recycling bin.
<?php
$query = "DELETE FROM students WHERE name = $1";
$result = pg_query_params($conn, $query, array('John Doe'));
if (!$result) {
echo "An error occurred.\n";
exit;
}
echo "Data deleted successfully!\n";
?>
Here, we're deleting the record for John Doe. Again, we use the WHERE
clause to specify exactly which record we want to remove.
And there you have it! You've just learned the basics of working with PostgreSQL using PHP. Remember, practice makes perfect, so don't be afraid to experiment with these commands. Before you know it, you'll be managing databases like a pro!
Happy coding, future database wizards!
Credits: Image by storyset