2016-10-20 2 views
0

i auf einen Zeitraum Tabelle für eine ausgewählte eine vorbereitete Erklärung bin mit:binden Parameter nicht mit Daten arbeiten

$query_period = $mysqli->prepare("SELECT * FROM period WHERE date_start<= '?' AND date_end >='?'"); 
$query_period->bind_param('ss',$date_start,$date_end); 

und die Ausführung gibt eine Parameternummer Fehler:

Warnung: mysqli_stmt :: bind_param(): Anzahl der Variablen entspricht nicht Anzahl von Parametern in vorbereitete Anweisung

der Fehler tritt nicht auf, wenn ich die "um das entfernen wie folgt aus:?

$query_period = $mysqli->prepare("SELECT * FROM period WHERE date_start<= ? AND date_end >=?"); 

aber auch die Abfrage stimmt nicht mit dem richtigen Ergebnis überein. wie kann ich das tun?

denn wenn so gehen:

$query_period = $mysqli->query("SELECT * FROM period WHERE date_start<= '$date_start' AND date_end >='$date_end'"); 

es alles in Ordnung

Antwort

0

Bind Parameter arbeitet funktioniert mit Terminen.

Es gibt absolut keinen Unterschied zwischen einer Abfrage mit einem Platzhalter und einer Abfrage mit dem tatsächlichen Wert. Weder für ein Datum noch für einen anderen Datentyp.

Daher kommt Ihr Problem aus welcher Richtung auch immer. Die Eingabedaten, die Daten in der Datenbank - Sie wissen. Je früher Sie das merken und aufhören, den falschen Baum zu bellen, desto schneller wird Ihr Problem gelöst.

+0

ich weiß, dass es keinen Unterschied geben sollte. aber ich verstehe nicht, wie das Problem in den Daten selbst sein kann. ich führe die Abfrage nicht aus, der Fehler ist auf der Bindung ... das andere Problem ist, dass ich mehr als einen Baum bellte, aber ohne irgendein nettes Ergebnis – Romeo

+0

Sie wissen, dass es uns allen passiert. Manchmal funktioniert unser Code nicht. Es ist Ihre Aufgabe, es zu debuggen und die Ursache zu finden. Aber Sie können sicher sein, dass die vorbereitete Aussage nicht eins ist. So hilft es Ihnen, die Möglichkeiten einzuschränken. –

+0

Warten. Du hast den Fehler auf der Bindung angegeben? ** So verwenden Sie diese Version immer noch mit Anführungszeichen?! ** –

Verwandte Themen