fetch_lengths
تابع fetch_lengths اندازه «طول فیلدها (Field Lengths)» را می دهد. طول یعنی تعداد بایت مقدار هر ستون در ردیف فعلی. مثل طول پیامک ها، هر ستون می تواند کوتاه یا بلند باشد. این اندازه برای بافرکردن، برش زدن، یا گزارش گیری مفید است.
طول فیلدها در ردیف جاری؛ تعریف و کاربرد
lengths یا mysqli_fetch_lengths آرایه ای از اعداد می دهد. هر عدد طول یک ستون است. اما حتماً باید اول یک ردیف را واکشی کنیم. سپس طول ها قابل دسترس می شوند.
نمونه کد شیءگرا (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 * FROM Persons ORDER BY Lastname";
if ($result = $mysqli->query($sql)) {
$row = $result->fetch_row();
foreach ($result->lengths as $i => $val) {
printf("Field %2d has length: %2d\n", $i + 1, $val);
}
$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 * FROM Persons ORDER BY Lastname";
if ($result = mysqli_query($con, $sql)) {
$row = mysqli_fetch_row($result);
foreach (mysqli_fetch_lengths($result) as $i => $val) {
printf("Field %2d has length: %2d\n", $i + 1, $val);
}
mysqli_free_result($result);
}
mysqli_close($con);
?>
گام های عملی سریع
- اتصال بده و خطا را چک کن.
- کوئری SELECT را اجرا کن.
- یک ردیف را واکشی کن.
- آرایه طول ها را بخوان و چاپ کن.
- result را آزاد کن و ببند.
نکته: برای خواندن خود داده ها از fetch_assoc یا fetch_all استفاده کن؛ lengths فقط اندازه را می دهد.
هشدار: قبل از lengths حتماً یک ردیف بگیر. وگرنه طول ها نامعتبر هستند.
جمع بندی سریع
- fetch_lengths اندازه ستون های ردیف فعلی را می دهد.
- خروجی آرایه ای از اعداد صحیح است.
- اول یک ردیف واکشی کن، بعد lengths را بخوان.
- برای نمایش داده ها از توابع fetch_* استفاده کن.
- برای کنترل حافظه، این اعداد مفید هستند.