fetch_array
تابع fetch_array یک «ردیف نتیجه» را می دهد. «آرایه انجمنی (Associative Array)» یعنی کلیدها نام ستون هستند. همچنین «آرایه عددی (Numeric Array)» فقط اندیس عددی دارد. برای تمرین، روی دریافت ردیف با fetch_array تمرکز می کنیم.
تعریف کوتاه و دریافت ردیف با fetch_array
fetch_array یک ردیف را می آورد. سپس می توانی نوع آرایه را تعیین کنی. انتخاب ها: MYSQLI_ASSOC، MYSQLI_NUM، یا MYSQLI_BOTH.
نمونه کد شیءگرا (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";
$result = $mysqli->query($sql);
$row = $result->fetch_array(MYSQLI_NUM);
printf("%s (%s)\n", $row[0], $row[1]);
$row = $result->fetch_array(MYSQLI_ASSOC);
printf("%s (%s)\n", $row["Lastname"], $row["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";
$result = mysqli_query($con, $sql);
$row = mysqli_fetch_array($result, MYSQLI_NUM);
printf("%s (%s)\n", $row[0], $row[1]);
$row = mysqli_fetch_array($result, MYSQLI_ASSOC);
printf("%s (%s)\n", $row["Lastname"], $row["Age"]);
mysqli_free_result($result);
mysqli_close($con);
?>
گام های عملی سریع
- اتصال بساز و خطا را بررسی کن.
- کوئری SELECT اجرا کن.
- با fetch_array یک ردیف بگیر.
- نوع آرایه مناسب را انتخاب کن.
- منابع نتیجه را آزاد کن.
نکته: نام ستون ها در خروجی تابع حساس به حروف هستند. دقت کن.
هشدار: MYSQLI_BOTH کلیدهای تکراری می دهد. پس مراقب سردرگمی باش.
برای همه ردیف ها، صفحه fetch_all را ببین. همچنین تک ردیف ساده با fetch_row مفید است.
جمع بندی سریع
- fetch_array فقط یک ردیف می آورد.
- ASSOC کلید نام ستون می دهد.
- NUM فقط اندیس عددی می دهد.
- BOTH هر دو نوع کلید می دهد.
- پس از کار، free_result را فراموش نکن.