>  기사  >  백엔드 개발  >  PHP 데이터베이스 연결

PHP 데이터베이스 연결

王林
王林원래의
2024-08-29 13:14:34643검색

데이터베이스는 모든 프로그래밍 언어의 중요한 구성 요소 중 하나입니다. 동적 프로젝트와 데이터 관리를 처리하려면 데이터베이스가 필요합니다. PHP는 다양한 종류의 데이터베이스 연결을 지원합니다. MySQL은 가장 널리 사용되는 관계형 데이터베이스 중 하나이며 대부분 PHP에서도 사용됩니다. PHP의 데이터베이스 연결이라는 용어를 고려하면 MySQL 자체에는 데이터베이스 작업을 수행하기 위해 애플리케이션에서 연결을 만드는 다양한 방법이 있습니다. PHP-MYSQL을 연결한 후에는 레코드 삽입, 레코드 삭제, 레코드 업데이트 등 다양한 작업을 수행할 수 있습니다. 이 기사에서는 PHP 언어를 사용한 데이터베이스 연결을 다양한 방법으로 살펴보므로 계속해서 읽어서 이해해 보세요. 제대로.

광고 이 카테고리에서 인기 있는 강좌 PHP 개발자 - 전문 분야 | 8개 코스 시리즈 | 3가지 모의고사

무료 소프트웨어 개발 과정 시작

웹 개발, 프로그래밍 언어, 소프트웨어 테스팅 등

PHP 데이터베이스를 어떻게 연결하나요?

연결하기 전에 호스트 이름, 데이터베이스 사용자 이름, 데이터베이스 비밀번호, 포트(애플리케이션인 경우) 등과 같은 세부 정보가 있어야 합니다. 모든 프로그래밍 언어에는 데이터베이스와 연결하고 이를 활용하는 고유한 방법이 있습니다. . PHP의 데이터베이스는 JAVA와 같은 프로그래밍 언어에서 볼 수 있는 것처럼 큰 작업이 아닙니다. 데이터베이스에 연결하는 데는 매우 간단한 몇 줄의 코드가 있습니다.

PHP 언어에서는 아래와 같은 방법으로 데이터베이스 연결을 할 수 있습니다.

1. MySQL

이것은 MySQL 데이터베이스에서만 작동합니다. 이 확장은 데이터베이스와 통신하는 기존의 전통적인 방식을 따릅니다. 이제 앞으로 나올 모든 PHP 버전에서는 이 접근 방식이 더 이상 사용되지 않습니다.

2. MySQLi 확장

이 기능은 MySQL 데이터베이스에서만 작동하지만 이는 MySQL의 향상된 버전입니다.

3. PDO

다양한 데이터베이스와 함께 작동합니다. 일반적으로 우리는 이 세 가지 방법 중 가장 좋은 방법을 고려합니다. 이는 MySQL 데이터베이스와 통신하는 객체 지향 방식으로 간주됩니다. 연결을 생성하는 순간 MySQL 관련 작업을 처리할 수 있는 개체를 제공합니다.

다음은 언급된 예입니다.

예시 1 – MYSQL을 이용한 PHP MYSQL 연결

코드:

$servername = "localhost";
$username = "root";
$password = "";
$link = mysql_connect($servername, $username, $password);
if (!$link) {
die('Connection failed: ' . mysql_error());
}else{
echo "Database Connected successfully"; // in case of success
}

PHP 하위 버전에서는 정상적으로 연결이 가능합니다. 하지만 이 코드를 사용하면 Deprecated: mysql_connect():라고 표시됩니다. MySQL 확장은 더 이상 사용되지 않으며 향후 제거될 예정입니다. 대신 mysqli 또는 PDO를 사용하세요.

이 때문에 PHP 언어로 데이터베이스를 MySQL 데이터베이스에 연결하는 데 이 기술을 사용하지 말아야 합니다.

예 2 – MYSQLi를 사용한 PHP MYSQL 연결

MYSQLi를 사용하여 두 가지 방법으로 연결할 수 있습니다.

MYSQLi 객체 지향.

코드:

<?php
$servername = "localhost";
$username = "root";
$password = "";
// Database Connection Code
$conn = new mysqli($servername, $username, $password);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error); // in case of error
}else{
echo "Database Connected successfully"; // in case of success
}
?>

이제 데이터베이스 연결 개체인 $conn이 생겼습니다. 데이터베이스와의 모든 통신에 이 개체를 사용할 수 있습니다.

코드:

// selecting database "test1"
mysqli_select_db($conn,"test1");

연결 설정 시 데이터베이스를 인수로 전달할 수도 있습니다.

코드:

$conn = new mysqli($servername, $username, $password, $databaseName);

MYSQLi 함수(절차적) 방식

코드:

$servername = "localhost";
$username = "root";
$password = "";
// Database Connection Code
$conn = mysqli_connect($servername, $username, $password);
// Check connection
if (!$conn) {
die("Connection failed: " . mysqli_connect_error()); // in case of error
}else{
echo "Database Connected successfully"; // in case of success
}

위에서 언급한 것처럼 데이터베이스 연결 및 기타 작업을 사용할 수도 있습니다.

예시 3 – PDO PHP 데이터베이스 연결

이 역시 PHP의 객체 지향 데이터베이스 연결 방식입니다. 이 접근 방식으로 다양한 유형의 데이터베이스를 사용할 수 있습니다.

코드:

$servername = "localhost";
$username = "root";
$password = "";
try {
// Database Connection Code
$conn = new PDO("mysql:host=$servername;dbname=test1", $username, $password);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
// in case of success
echo "Connected successfully";
}
catch(PDOException $e)
{
// in case of error
echo "Connection failed: " . $e->getMessage();
}

이제 질문은 MYSQLi를 사용해야 할까요, 아니면 PDO를 사용해야 할까요?

둘 다 PHP를 사용한 객체 지향 데이터베이스 연결 방식입니다. 우리는 이것을 데이터베이스 연결의 현재이자 미래의 방식으로 간주할 수 있습니다. 하지만 이 두 가지 중에서 선택하는 것은 프로젝트에 어떤 종류의 요구 사항이 있는지에 관한 것입니다. MySQL 데이터베이스만 있는 경우 MYSQLi를 사용할 수 있습니다. 그러나 데이터베이스가 MySQL에서 MySQL SERVER 또는 다른 공급업체로 변경되는 순간에는 PDO가 최선의 선택이 될 것입니다. 두 가지 접근 방식 모두 데이터베이스 작업을 수행하기 위한 쿼리를 작성하는 동안 준비된 문을 지원합니다. 준비된 명령문은 SQL 주입 공격으로부터 애플리케이션이나 데이터베이스를 보호할 수 있는 접근 방식입니다.

결론

그래서 당신의 마음 속에는 무엇이 있습니까? 위에서 언급한 3가지 유형의 데이터베이스 연결 기술을 모두 살펴본 후 우리는 PDO가 가장 좋은 접근 방식이라는 결론에 도달했습니다. 이것을 맨 위에 놓는 아이디어는 MySQL 데이터베이스뿐만 아니라 MySQL Server와 같은 다른 데이터베이스에도 이 접근 방식을 사용할 수 있다는 것입니다. 코드가 내구성이 있고 미래에 대비할 수 있도록 하려면 mysql_connect()를 사용하지 않아야 합니다.

위 내용은 PHP 데이터베이스 연결의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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