سلام دوستان تفاوت این دو چیست و چه مقادیری رو میتونن برگشت بدن؟
تفاوت اصلیش اینه که وقتی شما از 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
موفق باشید.
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟