我正在尝试通过以下方式更新数据库中的一些数据:
if($stmt = $connection->prepare("UPDATE `booking` SET status = ?, datecreated = ? WHERE day = ? AND timeSlot = ?")){
$stmt->bind_param('ssss', 'processing', 'now()', $results[0]['timeSlot'], $results[0]['day']);
$stmt->execute();
$stmt->close();
echo 'Updated';
}
当我运行它时,出现以下错误:
致命错误:无法通过引用传递参数 2
列datecreated
是日期时间类型。
"now()"和date('Y-m-d H:i:s'),所有3个都给了我相同的错误。
您需要绑定可以引用的变量。 如果它们不是变量,则直接将它们放入查询中:
if($stmt = $connection->prepare("UPDATE `booking` SET status = 'processing', datecreated = NOW() WHERE day = ? AND timeSlot = ?")){
$stmt->bind_param('ss', $results[0]['timeSlot'], $results[0]['day']);
$stmt->execute();
$stmt->close();
echo 'Updated';
}
或者我想你可以做$booking = 'processing';
,$datecreated = 'NOW()';
并绑定这些变量,如果你必须的话。