2016-04-26 31 views
0

Ich versuche, einige Daten in meiner DB zu aktualisieren über:MySQL PHP einfügen in Datatime

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'; 
} 

Als ich dies laufe ich die folgende Fehlermeldung erhalten:

Fatal error: Cannot pass parameter 2 by reference

Die Säule datecreated ist ein Datetime Art.

Ich habe jetzt versucht() und 'jetzt()' und Datum ('Y-m-d H: i: s') alle 3 geben mir den gleichen Fehler.

Antwort

4

Sie müssen Variablen binden, die referenziert werden können. Wenn sie nicht Variablen sind sie dann direkt in der Abfrage setzen:

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'; 
} 

Oder ich denke, man $booking = 'processing'; tun könnte und $datecreated = 'NOW()'; und bindet diese Variablen, wenn Sie müssen.