روز برنامه‌نویس مبارک 🤩🎉 از هدایای روز برنامه‌نویس جا نمونی ⌛
۰ ثانیه
۰ دقیقه
۰ ساعت
۴ دانشجوی سون‌لرن
برگرداندن ارور در صورت اشتباه بودن فیلد
جامعه پی اچ پی ایجاد شده در ۰۴ فروردین ۱۴۰۱

سلام. در این قسمت وقتی استاد یه فیلد اشتباه وارد میکنه تابع خالی برگردونده میشه! استاد میگه وقتی کوئری اشتباه میشه، prepare و execute هیچی رو برنمیگردونه...

حالا من وقتی یه فیلد اشتباه وارد میکنم ارور برمیگردونه!

<tr><th align='left' bgcolor='#f57900' colspan="5"><span style='background-color: #cc0000; color: #fce94f; font-size: x-large;'>( ! )span> Fatal error: Uncaught PDOException: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'test' in 'field list' in /iran/App/iran.php on line <i>46i>th>tr>

خطی هم که در ارور اشاره شده حاوی این کد هست

$stmt->execute();

دلیل اینکه واسه استاد چیزی برنمیگردونه اما واسه من ارور برمیگردونه چیه؟ ممکنه بخاطر این باشه که من نسخه php 8 استفاده میکنم؟ یا دلیل دیگه ای داره؟

سلام دوست عزیز

پروژتون رو در گیت پوش کنید ریپازیتوری رو بفرستید براتون بررسی میکنیم

آدرس فایلی که خطا هم رخ میده اعلام کنید

محمد گازری ۰۴ فروردین ۱۴۰۱، ۱۴:۲۱

پروژتون رو بررسی کردم

همونطور که استاد در ویدیو گفتند باید اطلاعات رو Validate کنید در اینجا ما از تکنیک whitelist استفاده میکنیم

یه ثابت یا پراپرتی تعریف کنید و فیلدهای مجاز برای دریافت رو در اون قرار بدید

const CITY_FIELDS = ['id', 'province_id', 'name'];

بعد قبل از ایجاد کوئری برای مثال در خط 44 فایل iran.php به شکل زیر عمل کنید

# validate fields
if (!is_null($fields)) {
    $fields_array = explode(',', $fields);
    foreach ($fields_array as $field)
        if (!in_array($field, CITY_FIELDS))
            return false;
}

اگر سوالی بود حتما بپرسید

محمد گازری ۰۴ فروردین ۱۴۰۱، ۱۴:۵۵

خب استاد خودش هم تا اینجا ولیدیت نکرده بود! ولی براش ارور نداد. اما واسه من ارور داد. این مورد منو گیج کرده

سیدرضا بازیار ۰۴ فروردین ۱۴۰۱، ۱۸:۲۵

خود استاد گفتن میتونه ارور داشته باشه برای همین validate رو نوشتن انجام بدیم!

این مورد علتش در سرفصل دیباگینگ گفته شده

بهترین پاسخ
محمد گازری ۰۴ فروردین ۱۴۰۱، ۱۸:۲۷