ارسال کوئری


ارسال کوئری(به اصطلاح درخواست)

برای اینکه درخواستی را ارسال کنید، مانند تابع های mysqli باید از query استفاده کنید:

$db->query("SELECT * FROM `users`");

خروجی این تابع بصورت خام و mysqli_result می باشد!


تابع های دیگری نیز هستند که نوع خروجی مشخص تری دارند:

$creator = $db->queryRow("SELECT * FROM `admins` WHERE `isCreator` = 1");

$creatorID = $db->queryFirst("SELECT `id` FROM `admins` WHERE `isCreator` = 1");

$num = $db->queryCount("SELECT * FROM `bans`");



درخواست با متغیر ایمن

زمانی که میخواهید متغیری را درون درخواست خود وارد کنید، با باگ XSS روبرو می شوید!

برای رفع این مشکل از تابع های دیگر این کلاس و یا علامت سوال ? در query استفاده کنید


روش غلط:

$db->query("SELECT * FROM `users` WHERE `id` = $id"); // خطر

روش خوب:

$db->query("SELECT * FROM `users` WHERE `id` = ?", $id);

همانطور که دیدید در متن درخواست علامت سوال ها را قرار می دهیم و در ادامه ی ورودی های تابع، متغیر ها را قرار می دهیم تا بصورت ایمن جایگزین شوند


توجه: ورودی ها باید به ترتیب قرار گیری علامت سوال ها از چپ باشند



درخواست با متغیر نام جدول

اگر می خواهید نام جدول را با متغیر مشخص کنید، از آنجا که متغیر ها با " " یا ' ' قرار می گیرند، نمی توانید مانند قبل فراخوانی کنید

برای انجام این کار کافیست علامت سوال خود را بین دو ` قرار دهید یعنی: `?`

$db->query("SELECT * FROM `?` WHERE `id` = ? AND `ban` = ?", $users_table, $id, false);