fetch_object
تابع fetch_object ردیف «نتیجه (Result)» را به «شیء (Object)» می دهد. یعنی ستون ها تبدیل به ویژگی های شیء می شوند. مثل دفتر نمره که هر ستون، یک خصوصیت است. سپس خیلی راحت با فلش → به آن دسترسی می گیری.
تعریف ساده و نکته حساسیت حروف
fetch_object یا mysqli_fetch_object ردیف جاری را به شیء می دهد. نام فیلدها «حساس به حروف (Case-Sensitive)» هستند. پس Lastname با lastname فرق دارد.
نمونه کد شیءگرا (Object Oriented)
<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "my_db");
if ($mysqli->connect_errno) {
echo "Failed to connect to MySQL: " . $mysqli->connect_error;
exit();
}
$sql = "SELECT Lastname, Age FROM Persons ORDER BY Lastname";
if ($result = $mysqli->query($sql)) {
while ($obj = $result->fetch_object()) {
printf("%s (%s)\n", $obj->Lastname, $obj->Age);
}
$result->free_result();
}
$mysqli->close();
?>
نمونه کد رویه ای (Procedural)
<?php
$con = mysqli_connect("localhost", "my_user", "my_password", "my_db");
if (mysqli_connect_errno()) {
echo "Failed to connect to MySQL: " . mysqli_connect_error();
exit();
}
$sql = "SELECT Lastname, Age FROM Persons ORDER BY Lastname";
if ($result = mysqli_query($con, $sql)) {
while ($obj = mysqli_fetch_object($result)) {
printf("%s (%s)\n", $obj->Lastname, $obj->Age);
}
mysqli_free_result($result);
}
mysqli_close($con);
?>
چه زمانی از fetch_object استفاده کنم؟
وقتی دوست داری به جای آرایه، با شیء کار کنی. کد خواناتر می شود. مثل کار با student->Age به جای row['Age'].
گام های عملی سریع
- اتصال بده و خطا را چک کن.
- کوئری SELECT را اجرا کن.
- با حلقه، fetch_object را صدا بزن.
- ویژگی ها را بخوان و چاپ کن.
- result را آزاد کن و اتصال را ببند.
نکته: اگر آرایه می خواهی، از fetch_assoc یا fetch_array استفاده کن.
هشدار: نام فیلدها دقیق بنویس. حروف کوچک و بزرگ مهم هستند.
جمع بندی سریع
- fetch_object هر ردیف را شیء برمی گرداند.
- ویژگی ها همان نام ستون ها هستند.
- Case-Sensitive است؛ دقت کن.
- خوانایی کد را بهتر می کند.
- پس از کار، منابع را آزاد کن.
fetch_object را برای داده های شیء-محور بیشتر تمرین کن.