Die Verwendung von STR_TO_DATE() im Wert eines assoziativen Arrays, das an get_where() von CodeIgniter übergeben wird, fPhp

PHP-Programmierer chatten hier
Anonymous
 Die Verwendung von STR_TO_DATE() im Wert eines assoziativen Arrays, das an get_where() von CodeIgniter übergeben wird, f

Post by Anonymous »

Nur eine Frage zur get_where-Funktion von Codeigniter Active Records. Ich wollte eine Abfrage erhalten, die so aussehen sollte:

Code: Select all

SELECT *
FROM foo
WHERE date = STR_TO_DATE('$month/$day/$year','%m/%d/%Y')
AND time = STR_TO_DATE('$hour:$minute$ampm', '%l:%i%p')
Jetzt habe ich in meinem Modell eine Funktion erstellt, die so aussieht:

Code: Select all

public function validate_if_existing($month, $day, $year, $hour, $minute, $ampm)
{
$event_date = "STR_TO_DATE('$month/$day/$year','%m/%d/%Y')";
$event_time = "STR_TO_DATE('$hour:$minute$ampm', '%l:%i%p')";

$this->db->flush_cache();
$query = $this->db->get_where('foo', array('event_date' => $event_date, 'event_time' => $event_time));

return $query->num_rows();
}
Aber es gibt 0 Zeilen zurück, wo ich 1 erwartet hätte. Ich habe versucht, den Inhalt von $event_date und $event_time zu überprüfen, und er sieht genau so aus, wie ich es erwartet habe. So:

Code: Select all

STR_TO_DATE('01/01/2012','%m/%d/%Y')
Mache ich das falsch? Wie lässt sich das Problem lösen?
Die gerenderte Abfrage:

Code: Select all

SELECT *
FROM (`foo`)
WHERE `event_date` = 'STR_TO_DATE(\'07/11/2012\',\'%m/%d/%Y\')'
AND `event_time` = 'STR_TO_DATE(\'06:00pm\', \'%l:%i%p\')'
Ich denke, diese unerwünschten äußeren einfachen Anführungszeichen und inneren maskierten einfachen Anführungszeichen haben das Problem verursacht.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post