这是我的代码:
$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'));
我也试过这个:
$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);
我收到错误:
致命错误:**无法通过引用传递参数3 ** ...文件路径...行#
请注意 CaptureTime 和 UploadeTime 的数据类型为 日期 。并且忽略了我传递第3和第4个参数的值相同的事实。
代码有什么问题?
答案 0 :(得分:27)
更改
$stmt->bind_param('isss', $caseno, $index.'.'.$extension, $captureTime, $uploadTime);
到
$isss = 'isss';
$indexExtention = $index.'.'.$extension
$stmt->bind_param($isss, $caseno, $indexExtention , $captureTime, $uploadTime);
我相信你必须传递变量而不是字符串。
如果您使用的是PDO,则可以使用bindvalue()
代替bindparam()
。
答案 1 :(得分:-1)
也许您需要将其强制转换为字符串?
...$extension, (string) $captureTime, (string) $uploadTime);