Ich arbeite mit PHP5 + und MySQL.Warum funktioniert meine "wo Bedingung" mit numerischen nicht?
ich kann nicht herausfinden, warum meine Operation nicht funktioniert:
$prepare = $bbd->prepare('SELECT cm.cm_values FROM c_metas as cm WHERE cm.cm_name = "inscription" AND cm.cm_values > :specific_date');
$prepare->execute(array(':specific_date' => $date));
Mit einem fetchAll, das gibt mir alle Einträge mit „Beschriftung“ in cm_name. Auf der anderen Seite:
$prepare = $bbd->prepare('SELECT cm.cm_values FROM c_metas as cm WHERE cm.cm_name = "inscription" AND cm.cm_values > '.$date.' ');
$prepare->execute();
Perfekt gibt Einträge mit „Beschriftung“ in cm_name und mit einem „cm_values“ überlegen $ date ...
ich kann nicht herausfinden, was ich tue, falsch ?
Thx für Ihre Hilfe, und verzeiht mein Englisch ...
Edit: Ich bin mit Zeitstempel Daten zu speichern, so $ date ist numerisch.
Nochmals bearbeiten: wie in Kommentaren gesagt, gibt es ein Problem mit dem Format meines param. So etwas wie
$prepare = $bbd->prepare('SELECT cm.cm_values FROM c_metas as cm WHERE cm.cm_name = "inscription" AND cm.cm_values > :specific_date');
$prepare->bindParam(':specific_date', $date, PDO::PARAM_INT);
$prepare->execute();
Werke ... Also muss ich jetzt bekommen, wie es in der Durchführung von Arbeiten zu machen() ...
Ich denke, im zweiten Beispiel vergleichen Sie 'Strings' statt' Dates'. 'c_metas' ist wahrscheinlich EAV-Tabelle mit' cm_values'-Spalte als Text. Versuchen Sie: 'WHERE CAST (cm.cm_name AS DATE)>' – lad2025
Ich benutze tatsächlich timestamp (oldschool, ich weiß) so specific_date, $ date sind Zahlen. – Vae