1 پاسخ

تفاوت میان bindparam و bindvalue

سلام دوستان تفاوت این دو چیست و چه مقادیری رو میتونن برگشت بدن؟


ثبت پرسش جدید
علی بیات
تخصص : توسعه دهنده ارشد وب
@ali.bayat 5 سال پیش مطرح شد
0

تفاوت اصلیش اینه که وقتی شما از bindParam استفاده میکنی،‌ متغیر به عنوان یک رفرنس محدود میشه و تنها زمانی ارزیابی میشه که execute فرا خوانده بشه. برای مثال:

$dataBase = new PDO('mysql:host=HOST;dbname=DB_NAME','DB_USER','DB_PASSWORD');

$firstName = 'Amin'; // will be ignored
$statement = $dataBase->prepare("SELECT * FROM members WHERE firstName = ?");
$statement->bindParam(1,$firstName,PDO::PARAM_STR);
$firstName = 'Ali';
$statement->execute();
$result = $statement->fetch();

if($result){
    echo '<pre>';
        print_r($result);
    echo '</pre>';
}
else{
    echo 'record not found...';
}

//  return information about the row with the first name of Ali .

بخاطر استفاده از متد bindParam ، متغیر firstName تا قبل از فراخوانی execute میتونه مقدار جدیدی رو دریافت کنه.. اما این انعطاف در متد bindValue وجود نداره و مقداری که فرستاده شده قابل تغییر نیست.

هر ۲ متد در صورت موفقیت مقدار TRUE و در غیر این صورت مقدار FALSE رو برمی‌گردونند.

به مستندات PHP هم می‌تونید مراجعه کنید:
https://www.php.net/manual/en/pdostatement.bindparam.php
https://www.php.net/manual/en/pdostatement.bindvalue.php

موفق باشید.


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام