Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to resolve 'cannot pass parameter by reference' error in PHP? [duplicate]

Tags:

php

mysqli

Here's my code:

$stmt = $conn->mysqli->prepare('INSERT INTO photos (CaseNo, ImageName, CaptureTime, UploadTime) VALUES (?,?,?,?)');
$stmt->bind_param('isss', $caseno, $index.'.'.$extension, date('Y-m-d H:i:s'), date('Y-m-d H:i:s'));

I have tried this also:

$stmt = $conn->mysqli->prepare('INSERT INTO photos (CaseNo, ImageName, CaptureTime, UploadTime) VALUES (?,?,?,?)');
$captureTime = date('Y-m-d H:i:s');
$uploadTime = date('Y-m-d H:i:s');
$stmt->bind_param('isss', $caseno, $index.'.'.$extension, $captureTime, $uploadTime);

I am getting the error:

Fatal error:** Cannot pass parameter 3 by reference in **...file path...line #

Please note that CaptureTime and UploadeTime have datatype date. And ignore the fact that I am passing the value of 3rd and 4th parameter same.

What's wrong with the code?

like image 789
Kumar Kush Avatar asked Nov 27 '11 17:11

Kumar Kush


1 Answers

Change

$stmt->bind_param('isss', $caseno, $index.'.'.$extension, $captureTime, $uploadTime);

to

$isss = 'isss';
$indexExtention = $index.'.'.$extension
$stmt->bind_param($isss, $caseno, $indexExtention , $captureTime, $uploadTime);

I believe you have to pass variables rather than a string.

Or you could use bindvalue() instead of bindparam() if you're using PDO.

like image 63
Kevin Vandenborne Avatar answered Nov 15 '22 01:11

Kevin Vandenborne