دستور SELECT در MySQL
دستور SELECT در SQL می تواند اطلاعات جدولی در پایگاه داده را استخراج و از آن استفاده کند.
برای مثال همه اطلاعات جدول users را استخراج می کنیم.
SELECT * FROM users
نکته: علامت * به معنای کل(همه اطلاعات) می باشد.
استخراج اطلاعات مشخص شده در MySQL
از طریق دستور SELECT می توان اطلاعاتی خاص مانند همه اطلاعات ذخیره شده در یک ستون را استخراج کرد.
برای مثال از جدول users همه داده های ستون های ایمیل (email) و شماره تلفن (number) را استخراج می کنیم.
SELECT email, number FROM users;
دستور LIMIT در MySQL
در استخراج اطلاعات از پایگاه های داده بزرگ که داده های زیادی دارند، دریافت همه اطلاعات و بررسی آنها منطقی نیست.
به همین دلیل از طریق دستور LIMIT تعداد ردیف هایی که از جدول نیاز است را مشخص می کنیم.
برای مثال همه ردیف های ستون ایمیل (email) استخراج می شوند ولی تعداد آنها محدود شده و تعداد 5 ایمیل برمی گردد.
SELECT * FROM users ORDER BY email LIMIT 5;
دستور WHERE در MySQL
دستور WHERE در MySQL برای استخراج های شرطی به کار می رود.
در استخراج شرطی می توان تعیین کرد که دقیقا چه ستون ، چه ID یا... برگردد.
برای مثال از بین همه کاربرهای جدول users، اطلاعات کاربری که نام alireza برمی گردد.
SELECT * FROM users WHERE name = 'alireza';
استخراج اطلاعات با روش mysqli
برای استفاده از دستور SELCET از روش mysqli در PHP، باید مراحل زیر را اجرا کنید.
پس از اتصال به پایگاه داده با روش mysqli، متغیری به نام sql ایجاد می کنیم و دستور SQL را در آن ذخیره می کنیم.
$sql = "SELECT * FROM users";
سپس دستور SQl را از طریق متد ()query اجرا می کنیم و در متغیر result ذخیره می کنیم.
در متغیر result همه اطلاعات جدول users ذخیره شده است.
$result = $conn->query($sql);
با ایجاد یک if و else بررسی می کنیم که متغیر result دارای مقدار یا خالی است.
در بخش if بررسی می کنیم که اگر تعداد مقادیر داخل متغیر result بیشتر از صفر بود، یک حلقه while ایجاد می کنیم که در سطر result را از طریق متد ()fetch_acssoc به یک آرایه منظم از ردیف های جدول تبدیل می کند و در آن آرایه می چرخد و ردیف های آن را در متغیر row ذخیره می کند.
در انتها ستون های موجود در جدول را کنار هم نمایش می دهیم.
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
echo $row["id"]. $row["name"] . $row["email"];
}
}
در صورتی که جدول پایگاه داده خالی باشد، به بخش else می رویم که در آن پیغام خطا نمایش داده می شود.
else {
echo "مقداری در جدول وجود ندارد.";
}
در آخر اتصال به پایگاه داده را قطع می کنیم.
$conn->close();
استخراج اطلاعات با روش PDO
برای استفاده از دستور SELCET از روش mysqli در PHP، باید مراحل زیر را اجرا کنید.
پس از اتصال به پایگاه داده با روش PDO، در بخش try متغیر stmt را ایجاد می کنیم و دستورsql را در آن با روش دستورات آماده ذخیره می کنیم.
برای اجرای دستورات sql از متد ()execute استفاده می کنیم.
$stmt = $conn->prepare("SELECT * FROM users");
$stmt->execute();
سپس خروجی اطلاعات از جدول را از طریق متد ()setFetchMode به آرایه ای منظم از ردیف های جدول تبدیل می کنیم و دستور PDO::FETCH_ASSOC این اطلاعات را در آرایه به شکل key:value ذخیره می کند و در متغیر result ذخیره می کنیم.
$result = $stmt->setFetchMode(PDO::FETCH_ASSOC);
در ادامه با ایجاد یک حلقه foreach و متد ()fetchAll همه ردیف های بازگشتی در متغیر result را به آرایه تبدیل می کنیم و در یک ساختار key:value که وجود دارد، ما value ها را نمایش می دهیم.
foreach($stmt->fetchAll() as $k=>$v) {
echo $v;
}
}
در بخش catch اگر خطایی وجود داشت، از طریق متد ()getMessage آن را نمایش می دهیم.
catch(PDOException $e) {
echo "خطا : " . $e->getMessage();
}
در آخر اتصال به پایگاه داده را قطع می کنیم.
$conn = null;
خلاصه درس
در این درس با مباحث زیر آشنا شدید:
- دستور SELECT در SQL
- استفاده از دستور SELECT با روش mysqli و PDO