real_query
تابع real_query یک «کوئری (Query)» تکی را اجرا می کند. سپس می توانی نتیجه را با store_result() یا use_result() برداری. یعنی اول اجرا، بعدا برداشت نتیجه.
real_query دقیقا چه می کند؟
یک پرس وجوی SQL را مستقیم به سرور می فرستد. سپس با شمارنده field_count می فهمیم نتیجه جدولی داریم یا نه. بعد، یا نتیجه را ذخیره می کنیم، یا حین پیمایش می خوانیم.
سینتکس شیءگرا (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();
}
$mysqli->real_query("SELECT * FROM Persons");
if ($mysqli->field_count) {
$result = $mysqli->store_result();
$row = $result->fetch_row();
$result->free_result();
}
$mysqli->close();
?>
گام های عملی با real_query
- اتصال بساز و خطا را بررسی کن.
- کوئری را با real_query اجرا کن.
- اگر
field_countمثبت بود، نتیجه بگیر. - با
store_result()یاuse_result()داده را بخوان. - منابع و اتصال را ببند.
نکات کاربردی
نکته: برای خواندن نتیجه کامل، از store_result() استفاده کن. برای حافظه کمتر، use_result() مناسب است.
نکته: اگر به سادگی اجرای کوئری نیاز داری، صفحه اجرای مستقیم کوئری را هم ببین. همچنین برای کوئری های امن، prepare بهتر است.
جمع بندی سریع
- real_query فقط اجرا می کند، برداشت جداگانه است.
field_countوجود نتیجه را مشخص می کند.- برای نتیجه کامل، از
store_result()کمک بگیر. - برای بهینگی حافظه،
use_result()را درنظر بگیر. - کوئری های حساس را با prepare بساز.