>백엔드 개발 >PHP 문제 >PHP 쿼리 저장 프로시저

PHP 쿼리 저장 프로시저

王林
王林원래의
2023-05-28 20:35:06724검색

PHP에서는 특정 작업을 완료하기 위해 데이터베이스의 저장 프로시저를 호출해야 하는 경우가 있습니다. 이 경우 데이터베이스와 상호 작용하려면 PHP의 데이터베이스 확장 통합을 사용해야 합니다. 이 기사에서는 PHP에서 저장 프로시저를 쿼리하는 방법을 소개합니다.

1단계: 데이터베이스에 연결

우선 데이터베이스에 올바르게 연결되었는지 확인해야 합니다. PHP의 mysqli 확장을 사용하여 데이터베이스에 연결할 수 있습니다. 연결이 성공한 후에는 특정 데이터베이스를 선택해야 합니다. 이는 mysqli_select_db() 함수를 호출하여 달성할 수 있습니다. 다음은 그 예입니다.

$username = "yourusername";
$password = "yourpassword";
$hostname = "localhost";
$database = "yourdatabase";

$connection = mysqli_connect($hostname, $username, $password);
mysqli_select_db($connection, $database);

위 코드에서 $username 및 $password 변수는 각각 데이터베이스의 사용자 이름과 비밀번호를 저장합니다. $hostname 변수는 데이터베이스의 호스트 이름을 저장합니다. $database 변수는 데이터베이스 이름을 저장합니다. 데이터베이스에 연결할 때 mysqli_connect() 함수를 사용하고 결과를 $connection 변수에 저장합니다. 그런 다음 mysqli_select_db() 함수를 사용하여 데이터베이스를 선택합니다.

2단계: 저장 프로시저 쿼리

PHP에서 저장 프로시저를 쿼리할 때는 mysqli_prepare() 함수를 사용하여 쿼리를 준비하고 결과를 변수에 저장해야 합니다. 쿼리 문에서 CALL 명령을 사용하여 저장 프로시저를 호출합니다. 예:

$userid = 1;
$stmt = mysqli_prepare($connection, "CALL get_user_by_id(?)");
mysqli_stmt_bind_param($stmt, "i", $userid);
mysqli_stmt_execute($stmt);

위 예제 코드에서 $stmt 변수는 쿼리 결과를 저장합니다. mysqli_prepare 함수는 쿼리 문을 준비하는 데 사용됩니다. 여기서?는 나중에 지정되는 매개변수 값을 나타내는 자리 표시자입니다. 실제 매개변수 값은 mysqli_stmt_bind_param() 함수를 통해 지정할 수 있다. 첫 번째 매개변수 "i"는 정수형을 나타내는 형식 지정자이고, 후속 매개변수 $userid는 전달할 매개변수 값입니다. 마지막으로 mysqli_stmt_execute() 함수를 사용하여 쿼리를 실행합니다.

3단계: 쿼리 결과 얻기

저장 프로시저의 쿼리 결과를 얻으려면 mysqli_stmt_store_result() 함수를 사용하여 결과를 캐시 영역에 저장해야 합니다. 그런 다음 mysqli_stmt_bind_result() 함수를 사용하여 코드에서 사용할 변수에 결과를 바인딩합니다. 예를 들면 다음과 같습니다.

mysqli_stmt_store_result($stmt);
mysqli_stmt_bind_result($stmt, $col1, $col2, $col3);

while (mysqli_stmt_fetch($stmt)) {
    printf("%s %s %s
", $col1, $col2, $col3);
}

mysqli_stmt_close($stmt);
mysqli_close($connection);

위의 예 코드에서는 mysqli_stmt_store_result() 함수를 사용하여 결과를 버퍼 영역에 저장합니다. 그런 다음 mysqli_stmt_bind_result() 함수를 사용하여 루프에서 사용할 $col1, $col2, $col3 등과 같은 변수에 결과를 바인딩합니다. 결과 세트를 순회하고 쿼리 결과를 출력하려면 루프에서 mysqli_stmt_fetch() 함수를 사용하십시오. 마지막으로 mysqli_stmt_close() 함수를 사용하여 쿼리 문을 닫고, mysqli_close() 함수를 사용하여 데이터베이스 연결을 닫습니다.

요약

저장 프로시저 쿼리는 PHP에서 특정 데이터베이스 작업을 구현하는 방법입니다. 쿼리를 수행할 때 먼저 데이터베이스에 연결되어 있는지 확인해야 합니다. 그런 다음 mysqli_prepare() 함수를 사용하여 쿼리를 준비하고 mysqli_stmt_bind_param() 함수를 사용하여 매개변수를 지정합니다. mysqli_stmt_execute() 함수를 사용하여 쿼리를 실행합니다. 그런 다음 mysqli_stmt_store_result() 함수를 사용하여 결과를 버퍼 영역에 저장하고, mysqli_stmt_bind_result() 함수를 사용하여 결과를 변수에 바인딩합니다. 마지막으로 while 루프를 사용하여 결과 세트를 순회하고 mysqli_stmt_fetch() 함수를 사용하여 쿼리 결과를 출력합니다. 쿼리를 완료한 후 mysqli_stmt_close() 함수를 사용하여 쿼리 문을 닫고 mysqli_close() 함수를 사용하여 데이터베이스 연결을 닫아야 합니다.

위 내용은 PHP 쿼리 저장 프로시저의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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