I have a simple sql select query (similar to below) that returns zero results when using placeholders:
$sql='SELECT * FROM table
        WHERE column1=?
            AND column2=?;';
$sth = $dbh->prepare($sql);
$sth->execute(array(1,2));
However when i hardcode the sql I am receiving results:
$sql='SELECT * FROM table
        WHERE column1=1
            AND column2=2;';
$sth = $dbh->prepare($sql);
$sth->execute();
Can anyone explain why my placeholders aren't working?
EDIT The prepare statement succeeds. Here is the full query:
$sql='SELECT * FROM calendar
LEFT JOIN class_schedule
    ON calendar.week=class_schedule.week 
        AND calendar.class_day=class_schedule.class_day
        AND calendar.class_time=class_schedule.class_time
LEFT JOIN class_enrolledIn
    ON class_enrolledIn.class=class_schedule.class
LEFT JOIN users
    ON class_enrolledIn.u_id=users.id
WHERE calendar.week=?
    AND calendar.class_day=?
    AND u_id IS NOT NULL;';