Ich habe Felder id
und date
als VARCHAR definiert (16)MySQL Abfrage gibt kein Ergebnis
Wenn ich diese Abfrage tun:
SELECT *
FROM `members`
WHERE `id` = '4412040999876'
AND `date` = '201706054783'
ich keine Ergebnisse.
Wenn ich es wie folgt tun:
SELECT *
FROM `members`
WHERE `id` = 4412040999876
AND `date` = 201706054783
Hinweis - ohne Anführungszeichen - ich bekomme das Ergebnis ich erwarte.
EDIT: Hier ist der Code verwendet - ich bin nicht manuell Zitate hinzufügen. Die DB-Klasse von CI fügt sie hinzu.
public function get_member_match($id, $mem, $field = 'name')
{
$sql = "
SELECT *
FROM `members`
WHERE `id` = ?
AND `" . $field . "` = ?
";
$sql_array = array($id, $mem);
$q = $this->db->query($sql, $sql_array);
return $q->result_array();
}
Und ich nenne diese Funktion als:
$this->members_model->get_member_match($id, $date, 'date');
I-Ausgang der Abfrage und die Variablen korrekt abgestimmt, keine Fehler, nur die Zitate.
Jede Idee, warum? Ich hatte dieses Problem nie zuvor. Arbeiten mit CodeIgniter 3 mit dem Abfrage-Generator.
EDIT2: Zusammenfassung der bisherigen Ergebnisse:
- Localhost (MySQL 5.6.24) arbeitet, Server (MySQL 5.5.55-0 + deb7u1) nicht.
- Das Problem tritt in meinem Code und in PHPMyAdmin auf dem Server auf, funktioniert aber lokal, also beseitige ich ein Code-Problem.
- Die
show variables like 'char%'
Abfrage zeigt alle Zeichensatz-Einstellungen identisch auf lokalen und auf dem Server. - Datenbank und Felder haben die gleiche Codierung sowohl auf dem Server als auch lokal.
- Scheint nicht ein Casting Problem zu sein, da viele der Kommentare deuten darauf hin, wie das Problem auf nicht vorhanden ist localhost, nur auf dem Server, es sei denn, der Server-Konfiguration oder andere Probleme hat.
- ...?
....Dies ist auf Datentypen = Datum ist eine Zeichenfolge sozusagen, Datum sollte in einfache Anführungszeichen eingeschlossen werden, wenn ID ein int-Feld ist - keine Notwendigkeit für Anführungszeichen, in der Tat überhaupt keine Anführungszeichen, wenn es int ist – ThisGuyHasTwoThumbs
Es ist Typcasting. Zitieren Sie keine Zahlen mit Ausnahme von Datumsangaben – clearshot66
@ThGuyHasTwoThumbs Aber meine Felder sind als Varchar definiert? Ich verwende den Abfrage-Generator von CI, also füge ich keine Anführungszeichen hinzu. Die Bibliothek tut es automatisch ... –