>  기사  >  백엔드 개발  >  PHP가 데이터베이스에 연결하는 시간을 설정하는 방법

PHP가 데이터베이스에 연결하는 시간을 설정하는 방법

PHPz
PHPz원래의
2023-04-06 09:15:301344검색

PHP는 다양한 데이터베이스와 상호 작용하고 통신할 수 있는 널리 사용되는 서버 측 스크립팅 언어입니다. 실제 개발을 하다 보면 데이터베이스에 연결해야 하는 상황이 자주 발생합니다. PHP가 데이터베이스에 연결할 때 관련된 많은 요소가 있으며, 중요한 요소 중 하나는 연결 시간 설정입니다. 이 기사에서는 PHP가 데이터베이스에 연결하는 시간을 설정하는 방법을 간략하게 소개합니다.

1. PHP 데이터베이스 연결 시간 설정

PHP에서 데이터베이스에 연결하는 시간은 일반적으로 연결 시간 초과와 쿼리 시간 초과라는 두 가지 변수에 의해 제어됩니다. 연결 시간 초과는 데이터베이스에 연결하는 데 걸리는 최대 대기 시간을 의미하며, 이 시간 내에 데이터베이스에 연결할 수 없으면 연결 요청이 실패합니다. 연결 요청이 실패하면 쿼리가 완료되지 않고 실행이 중단되고 오류 메시지가 반환됩니다.

PHP 5.3 이후에는 매개변수에 timeout 키워드를 추가하여 연결 시간 초과 및 쿼리 시간 초과를 설정할 수 있습니다. 예는 다음과 같습니다.

$conn = mysqli_connect($host, $username, $password, $dbname, $port, null, array('connect_timeout' => $connect_timeout, 'query_timeout' => $query_timeout));

그 중 $connect_timeout과 $query_timeout은 각각 연결 시간 초과와 쿼리 시간 초과를 초 단위로 나타냅니다.

또한 PDO에서는 속성을 설정하여 연결 시간을 제어할 수도 있습니다. 예는 다음과 같습니다.

$pdo = new PDO("mysql:host=$host;dbname=$db", $user, $pass, array(PDO::ATTR_TIMEOUT => $timeout));

그 중 $timeout은 시간 초과를 초 단위로 나타냅니다.

2. 연결 시간 초과 및 쿼리 시간 초과를 설정하는 방법

  1. 연결 시간 초과 설정

PHP에서는 매개변수에서 연결 시간 초과를 설정할 수 있습니다. 샘플 코드는 다음과 같습니다.

$conn = mysqli_connect($host, $username, $password, $dbname, $port, null, array('connect_timeout' => $connect_timeout, 'query_timeout' => $query_timeout));

그 중 $connect_timeout은 연결 시간 초과를 초 단위로 나타냅니다. $query_timeout은 쿼리 시간 초과를 초 단위로 나타냅니다. 필요에 따라 이 두 매개변수의 값을 설정할 수 있습니다.

  1. 쿼리 시간 초과 설정

PHP의 쿼리 시간 초과 설정에는 일반적으로 MySQL의 두 가지 매개 변수인 wait_timeout 및 Interactive_timeout이 포함됩니다. wait_timeout은 서버가 비활성 상태에서 연결을 닫을 때까지 클라이언트가 기다리는 시간을 나타내며, Interactive_timeout은 서버가 비활성 상태에서 연결을 닫을 때까지 기다리는 시간을 나타냅니다. 클라이언트가 사용하는 경우에만 작동합니다. "인터랙티브" 옵션. 기본적으로 이 두 매개변수의 값은 28800초(8시간)입니다.

PHP에서는 SQL 문에 시간 제한을 지정하여 쿼리 실행 시간을 제어할 수 있습니다. 샘플 코드는 다음과 같습니다.

$stmt = $conn->prepare("SELECT * FROM users WHERE id=?");
$stmt->bind_param("i", $id);
$stmt->execute();
$stmt->store_result();
$stmt->sqlstate();
$stmt->get_warnings();
$stmt->errno();
$stmt->error();
$stmt->fetch();

쿼리 문을 실행할 때 다음 코드를 추가할 수 있습니다.

$stmt->query("SET SESSION wait_timeout=120");

이런 식으로 여기에서 시간 제한을 설정할 수 있는데 여기서는 120초로 설정합니다. wait_timeout은 서버측 매개변수이므로 이 시간 초과 설정은 대략적이고 상세하지 않습니다.

3. 요약

PHP가 데이터베이스에 연결되면 연결 시간 초과 및 쿼리 시간 초과를 포함한 연결 시간 설정에 주의해야 합니다. 매개변수에 시간 제한을 지정하여 이를 달성할 수 있으며, 쿼리 실행 시간을 제한하기 위해 SQL 문에 시간 제한을 지정할 수도 있습니다. 보다 세부적인 시간 초과 제어를 위해서는 MySQL 서버 측 매개변수에 대한 더 깊은 이해가 필요합니다. 실제 개발에서는 시스템의 안정성과 신뢰성을 보장하기 위해 특정 상황에 따라 타임아웃을 합리적으로 설정해야 합니다.

위 내용은 PHP가 데이터베이스에 연결하는 시간을 설정하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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