나는 이것이 PHP 사용자 대부분을위한 다소 기본적인 질문이라고 생각합니다.PHP : DB에서 언제 결과를 공개 할 예정입니까?
<?php
define("DB_HOST", "localhost");
define("DB_NAME", "dbname");
define("DB_USER", "admin");
define("DB_PASSWORD", "abcdefg");
$connection;
$result;
function connectDatabase() {
global $connection;
if(isset($connection)) return;
$connection = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);
if(mysqli_connect_errno()) {
die("Database connection failed: " . mysqli_connect_error() . " (" . mysqli_connect_errno() . ")");
}
}
function queryDatabase($query) {
global $connection, $result;
$result = mysqli_query($connection, $query);
if(!$result) {
die("Database query failed");
}
else {
return $result;
}
}
function releaseResult() {
global $result;
mysqli_free_result($result);
}
function closeConnection() {
global $connection;
mysqli_close($connection);
}
?>
을 내가 같이 호출 현실을 가정 해 봅시다 : 이제 내가 DB 작업이 파일을 가정 해 봅시다
<?php
require_once("db_connection.php");
function createNavigation() {
connectDatabase();
$query = "SELECT * ";
$query .= "FROM subjects ";
$query .= "ORDER BY position ASC";
$result = queryDatabase($query);
while($subject = mysqli_fetch_assoc($result)) {
//do something
}
releaseResult();
}
?>
문제는 - 내가 실제로 로컬 $ 결과를 공개해야합니까 createNavigation 함수에서 또는 너무 필요하지 않은가?
어쨌든 mysqli_free_result에는 어떤 이점이 있습니까? 다른 OOP 언어에서 나오는 것은 객체, GC, 메모리 관리 등을 해제/파괴/무효로하는 것을 이해하지만 스크립트에서 한 번만 실행하면 PHP가 좋은 점을 혼란스럽게합니다. 고맙습니다!
감사합니다. PDO를 확인합니다. – Fygo