Ich verwende diesen Code und ich bin über Frustration:Wie füge ich NULL-Werte mit PDO ein?
try {
$dbh = new PDO('mysql:dbname=' . DB . ';host=' . HOST, USER, PASS);
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$dbh->setAttribute(PDO::MYSQL_ATTR_INIT_COMMAND, "SET NAMES 'utf8'");
}
catch(PDOException $e)
{
...
}
$stmt = $dbh->prepare('INSERT INTO table(v1, v2, ...) VALUES(:v1, :v2, ...)');
$stmt->bindParam(':v1', PDO::PARAM_NULL); // --> Here's the problem
PDO::PARAM_NULL, null, '',
alle von ihnen scheitern und diesen Fehler werfen:
Fatal error: Cannot pass parameter 2 by reference in /opt/...
Ich bin mir nicht sicher, der Unterschied zwischen diesen beiden, aber ich werde einige untersuchen. Danke, deine Antwort war auch großartig. – Nacho
Ich denke, das könnte eine bessere Antwort sein als meine (wenn es tatsächlich funktioniert) –
meine Tests auf PHP 5.3.8 + Mysql zeigen, dass es keinen Unterschied in der generierten Abfrage zwischen den beiden gibt. Der wichtige Teil scheint zu sein, dass der übergebene Wert NULL ist und nicht '' oder '0' – Odin