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

- 2 هفته پیش
توسط علی بیات آپدیت شد
امین ( 215 تجربه )
3 هفته پیش

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

علی بیات ( 75322 تجربه )
2 هفته پیش

تفاوت اصلیش اینه که وقتی شما از 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

موفق باشید.

برای ارسال پاسخ باید وارد سایت شوید