/
  • خطای You have an error in your SQL syntax; check the manual t

  • ارسال پاسخ   امتیاز موضوع:
    • 1 رأی - میانگین امیتازات: 5
    • 1
    • 2
    • 3
    • 4
    • 5

    حالت موضوعی | حالت خطی خطای You have an error in your SQL syntax; check the manual t
    نویسنده پیام
    dashali2 آفلاین
    عضو جدید
    **

    ارسال‌ها: 5
    تاریخ عضویت: ۱۳۹۶ فروردين ۱۲
    اعتبار: 0
    تشکرها : 0
    ( 0 تشکر در 0 ارسال )
    ارسال: #1
    خطای You have an error in your SQL syntax; check the manual t
    سلام
    من از روی یک ویدئو خارجی دارم رو یه پروژه ای کار میکنم و دقیقا کدها رو مانند ویدئو نوشتم و هیچ مشکلی نیست اما کدها در ویدئو اجرا میشوند و در سیستم من اجرا نمیشود و این خطا را نشان میدهد.
    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''choices' WHERE question_number=1' at line 112
    کدها به صورت زیر است:
    ارتباط با دیتابیس
    کد PHP:
    <?php
      
    //Create connection credentials
      
    $db_host 'localhost';
      
    $db_name 'quizzer';
      
    $db_user 'root';
      
    $db_pass '';

      
    //Crate mysqli object
      
    $mysqli = new mysqli($db_host $db_user $db_pass $db_name);

      
    //Error Handle
      
    if($mysqli->connect_error){
        
    printf("Connect failed : %s/n" $mysqli->connect_error);
        exit();
      }
     
    ?>

    [/php] <?php
    ?>کدهای اصلی
    کد PHP:
    <?php include 'database.php'?>
    <?php
      
    //Set question number
      
    $number = (int) $_GET['n'];

      
    /*
      * Get Question
      */
      
    $query ="SELECT * FROM 'questions' WHERE question_number=$number";

      
    //Get result
      
    $result =$mysqli->query($query) or die($mysqli->error.__LINE__);



      
    $question $result->fetch_assoc();
     
    ?>
    (آخرین ویرایش در این ارسال: ۱۳۹۶ فروردين ۱۴ ۰۳:۱۲ صبح، توسط Y.P.Y.)
    ۱۳۹۶ فروردين ۱۲ ۰۲:۲۳ عصر
    یافتن ارسال‌ها پاسخ با نقل قول
     تشکر شده توسط :
    Y.P.Y آفلاین
    ناظم کل
    *******

    ارسال‌ها: 2,806
    تاریخ عضویت: ۱۳۸۷ دي ۲۸
    اعتبار: 89
    تشکرها : 2086
    ( 4560 تشکر در 2086 ارسال )
    ارسال: #2
    RE: خطای You have an error in your SQL syntax; check the manual t
    مشکل از ' در قسمت نام جدول هستش.
    نباید از ' برای نام جداول و فیلدها استفاده کنی:
    کد:
    $query ="SELECT * FROM questions WHERE question_number = $number";
    __________________________________________________________________________
    وبلاگ: Yousha.Blog.ir

    کسی که دین را با شخصیت ها بشناسد، همان شخصیت ها او را از دین خارج می سازند. امام صادق (ع)
    ۱۳۹۶ فروردين ۱۴ ۰۳:۱۲ صبح
    یافتن ارسال‌ها WWW پاسخ با نقل قول
     تشکر شده توسط :
    dashali2 آفلاین
    عضو جدید
    **

    ارسال‌ها: 5
    تاریخ عضویت: ۱۳۹۶ فروردين ۱۲
    اعتبار: 0
    تشکرها : 0
    ( 0 تشکر در 0 ارسال )
    ارسال: #3
    RE: خطای You have an error in your SQL syntax; check the manual t
    (۱۳۹۶ فروردين ۱۴ ۰۳:۱۲ صبح)Y.P.Y نوشته شده توسط:  مشکل از ' در قسمت نام جدول هستش.
    نباید از ' برای نام جداول و فیلدها استفاده کنی:
    کد:
    $query ="SELECT * FROM questions WHERE question_number = $number";
    تشکر بله دیگه دیر گفتید خودم فهمیدم و باز هم جاهای دیگه به این مشکل برخوردم و برطرف شد.
    ممنون از شما
    ۱۳۹۶ فروردين ۱۴ ۱۱:۳۴ عصر
    یافتن ارسال‌ها پاسخ با نقل قول
     تشکر شده توسط :
    Y.P.Y آفلاین
    ناظم کل
    *******

    ارسال‌ها: 2,806
    تاریخ عضویت: ۱۳۸۷ دي ۲۸
    اعتبار: 89
    تشکرها : 2086
    ( 4560 تشکر در 2086 ارسال )
    ارسال: #4
    RE: خطای You have an error in your SQL syntax; check the manual t
    حالا اگر دوست داری بیشتر بدونی، درستش اینه که کوئری رو اینطوری بنویسی:
    کد PHP:
    $query "SELECT * FROM `questions` WHERE `question_number` = {$number};"

    بعلاوه این شیوه casting
    کد PHP:
    $number = (int) $_GET['n']; 
    اگر n خالی باشه، یا NULL باشه یا نامعتبر باشه، 0 رو برمیگردونه و یک نتیجه دیگه در کوئریت ایجاد میکنه
    همچنین اگر n بیشتر از 9999999999 (ده رقم) باشه، معمولاً 1410065407 رو برمیگردونه و باز هم یک نتیجه دیگه در کوئریت ایجاد میکنه(باگ میده برنامه)
    __________________________________________________________________________
    وبلاگ: Yousha.Blog.ir

    کسی که دین را با شخصیت ها بشناسد، همان شخصیت ها او را از دین خارج می سازند. امام صادق (ع)
    (آخرین ویرایش در این ارسال: ۱۳۹۶ فروردين ۱۵ ۰۲:۴۸ صبح، توسط Y.P.Y.)
    ۱۳۹۶ فروردين ۱۵ ۰۲:۳۵ صبح
    یافتن ارسال‌ها WWW پاسخ با نقل قول
     تشکر شده توسط :
    dashali2 آفلاین
    عضو جدید
    **

    ارسال‌ها: 5
    تاریخ عضویت: ۱۳۹۶ فروردين ۱۲
    اعتبار: 0
    تشکرها : 0
    ( 0 تشکر در 0 ارسال )
    ارسال: #5
    RE: خطای You have an error in your SQL syntax; check the manual t
    (۱۳۹۶ فروردين ۱۵ ۰۲:۳۵ صبح)Y.P.Y نوشته شده توسط:  حالا اگر دوست داری بیشتر بدونی، درستش اینه که کوئری رو اینطوری بنویسی:
    کد PHP:
    $query "SELECT * FROM `questions` WHERE `question_number` = {$number};"

    بعلاوه این شیوه casting
    کد PHP:
    $number = (int) $_GET['n']; 
    اگر n خالی باشه، یا NULL باشه یا نامعتبر باشه، 0 رو برمیگردونه و یک نتیجه دیگه در کوئریت ایجاد میکنه
    همچنین اگر n بیشتر از 9999999999 (ده رقم) باشه، معمولاً 1410065407 رو برمیگردونه و باز هم یک نتیجه دیگه در کوئریت ایجاد میکنه(باگ میده برنامه)

    یکم بیشتر راجع بع این شیوه casting توضیح میدید؟
    ببینید تو این ویدئو یه صفحه پی اچ پی ساخت به اسم question.php و بعد از صفحه اصلی که اسمش index.php بود به صفحه کوئسشن ریدایرکت کرد ولی نام صفحه رو اینجوری نوشت:
    question.php?n=1
    اون تیکه اخرش رو دقیقا نفهمیدم که چجوری شد.
    اگه میشه یه توضیحی راجع به اون قسمت بدید ممنون میشم.
    ۱۳۹۶ فروردين ۱۵ ۱۱:۵۴ صبح
    یافتن ارسال‌ها پاسخ با نقل قول
     تشکر شده توسط :
    « قدیمی تر | تازه‌ تر »

    ارسال پاسخ
    پرش به انجمن:


    کاربرانِ درحال بازدید از این موضوع: 1 مهمان
    IranPHP.org | تماس با ما | بازگشت به بالا | بازگشت به محتوا | بایگانی | پیوند سایتی RSS