• 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
برخی از متد های PHP Prepared Statements کار نمی کنند روی php ورژن 5.4.32 ؟؟
#1
سلام . ورژن php هاستم 5.4.35 و اینکه بعضی از متد های PHP Prepared Statements رو پشتیبانی نمیکنه
اون متد ها اینا هستند .
کد پی‌اچ‌پی:
$stmt $stmt->get_result();
$num=$stmt->num_rows;
$row=$stmt->fetch_assoc(); 

برای متد اول من از
کد پی‌اچ‌پی:
$stmt->store_result(); 
استفاده میکنم به جای
کد پی‌اچ‌پی:
$stmt->get_result(); 
. در حالی store_result اصولان برای bind_result . ,وقتی از store_result استفاده میکنم این
کد پی‌اچ‌پی:
$stmt->num_rows
به خوبی کار میکنه ولی این
کد پی‌اچ‌پی:
$stmt->fetch_assoc() 
اصلان کار نمیکنه . مشکلب از کجاست . یکسری گفتن برای اینکه ورژن php من هر کاری کردم ولی جواب نگرفتم .

ارور من هم اینه
...<b>Fatal error</b>: Call to undefined method mysqli_stmt::get_result() in

کد کامل هم اینه .
کد پی‌اچ‌پی:
public function Information($email,$pass)
    {   


        
#DB Query Comment
            
$stmt $GLOBALS['conn']->prepare("SELECT * FROM name WHERE email=? AND password=?");
            
$stmt->bind_param("ss",$WHERE_email,$WHERE_pass);
        
#DB Query Value
            
$WHERE_email=$email;
            
$WHERE_pass=$pass;
        
#Run Query In DB
            
$result=$stmt->execute();
        
#Get Count Of Rows  
                #Refrsh $stmt
                    
$stmt->store_result(); 
            
$num=$stmt->num_rows;
            
$row=$stmt->fetch_assoc();      

        if(@
$num>0)
                {

                    
$response['status']=200;
                    
$response['status_message']="User found";
                    
$response['email']=$row['email'];
                    
$response['fullname']=$row['fullname'];
                    
$response['phonenumber']=$row['phonenumber'];

                    
$json_response=json_encode($response);
                    echo 
$json_response;
                    return 
0;

                }
            else
                {

                    
$response['status']=204;
                    
$response['status_message']="User Not found";

                    
$json_response=json_encode($response);
                    echo 
$json_response;
                    return 
0;

                }




    } 





لینک stackoverflow :
http://stackoverflow.com/questions/39452...php-5-4-35
  پاسخ
تشکر شده توسط :
#2
php5-mysqlnd نصب و فعال هست؟
وبلاگ: Yousha.Blog.ir


 کد کمتر => خطای کمتر => قابل فهمتر => خوانایی بالاتر => نگهداری بهتر

  پاسخ
تشکر شده توسط : game100
#3
متاسفانه نمیدونم چه طوری چک بکنم ؟

به مدیر سرور گفت اینو گفت
وارد cPanel خود شوید و بر روی گزینه Select PHP Version کلیک نمایید، سپس نسخه PHP مورد نظر خود را انتخاب کنید و بر روی Set as current کلیک نمایید.
در صفحه ای که مشاهده میکنید تمامی Extension های قابل استفاده را مشاهده کنید و در صورت نیاز Extension مورد نظر خود را فعال کنید.
توجه داشته باشید با کلیک بر روی گزینه Switch To PHP Options میتوانید تغییراتی نظیر memory_limit یا max_execution_time و غیره را اعمال کنید.

ولی وقتی میرم ورژن رو به 5.5 تغییر میدومو و mysqlnd رو فعال میکنم و اون وقت رو خط $stmt = $stmt->get_result();

ارور 500 درج میشه
  پاسخ
تشکر شده توسط :
#4
اول اینکه شما که از نسخه php 5 استفاده می کنی باید از آخرین نسخه stable پی اچ پی 5 استفاده کنی، و نه outdate شده.
PHP 5.6.x رو دانلود کن.
http://php.net/downloads.php

دوم اینکه همیشه doc رو مطالعه کن:
نقل قول:mysqli_stmt::get_result
mysqli_stmt_get_result
MySQL Native Driver Only ¶
Available only with mysqlnd.

اگر از ویندوز استفاده می کنی، این درایور باید خودکار همراهش باشه... نگاهی به php.ini ت بنداز ببنی اکستنشن mysqli فعال هستش؟
اگرم از لینوکس استفاده می کنی فکرکنم باید php5-mysqlnd رو دانلود و نصب کنی
وبلاگ: Yousha.Blog.ir


 کد کمتر => خطای کمتر => قابل فهمتر => خوانایی بالاتر => نگهداری بهتر

  پاسخ
تشکر شده توسط : game100
#5
استاد عزیز . ممنونم
من روی هاستم چه طور میتونم این کار رو انجام بدم ؟؟؟






بله من تمام داکیومنت رو مطالعه کردم و دیدم که باید از musqlnd استفاده بشه .
  پاسخ
تشکر شده توسط :
#6
نقل قول:من روی هاستم چه طور میتونم این کار رو انجام بدم ؟؟؟

نقل قول:به مدیر سرور گفت اینو گفت
وارد cPanel خود شوید و بر روی گزینه Select PHP Version کلیک نمایید، سپس نسخه PHP مورد نظر خود را انتخاب کنید و بر روی Set as current کلیک نمایید.
در صفحه ای که مشاهده میکنید تمامی Extension های قابل استفاده را مشاهده کنید و در صورت نیاز Extension مورد نظر خود را فعال کنید.
توجه داشته باشید با کلیک بر روی گزینه Switch To PHP Options میتوانید تغییراتی نظیر memory_limit یا max_execution_time و غیره را اعمال کنید.

ولی وقتی میرم ورژن رو به 5.5 تغییر میدومو و mysqlnd رو فعال میکنم و اون وقت رو خط $stmt = $stmt->get_result();

ارور 500 درج میشه
شما نمی تونی، مدیر هاستت باید انجام بده... با همون support تماس بگیر و مشکلات رو بهش بگو
وبلاگ: Yousha.Blog.ir


 کد کمتر => خطای کمتر => قابل فهمتر => خوانایی بالاتر => نگهداری بهتر

  پاسخ
تشکر شده توسط : game100


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان