2014-11-26 3 views
-3

Я работаю над школьным проектом, с которым у меня не было проблем, внезапно эта ошибка появляется. Я ничего не редактировал в коде. Когда я запустил его снова, появится эта ошибка.Неустранимая ошибка: исключить исключение «PDOException» с сообщением «SQLSTATE [42000]: 4

Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 7' And here is the other error I've been getting.

PDOException: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 7

Это вопрос, который я сделал. Я действительно не мог найти, в чем проблема.

class Subject {   

    function getSubjectList($id) { 
     global $db;    

     $sql = "SELECT class_id, c.subject_id, subject_desc, units, day, time 
       FROM class c 
       JOIN subject s 
       ON c.subject_id = s.subject_id 
       JOIN lecturer l 
       ON c.lec_id = l.lec_id 
       WHERE l.lec_id = $id"; 

     $stmt = $db->query($sql); 

     while($r = $stmt->fetch()) { 
      $result[] = $r['class_id']; 
      $result[] = $r['subject_id']; 
      $result[] = $r['subject_desc']; 
      $result[] = $r['units']; 
      $result[] = $r['day']; 
      $result[] = $r["time"]; 
      $result[] = $r['class_id']; 
     } 

     return $result;    
    } 
} 
+1

Я рекомендую вам параметризовать запрос. Вы пытались повторить запрос, чтобы увидеть, как он выглядит? 'echo $ sql; die(); ' – ymas

+0

Извините, я действительно новичок в этом, но как мне это сделать? – AClement

+1

Скорее всего, причиной '$ id' является пустая строка? (И да, используйте подготовленные заявления) – Wrikken

ответ

-1

В этом запросе вы должны указать тип соединения: http://dev.mysql.com/doc/refman/5.0/en/join.html

Посмотрите пример ниже:

SELECT class_id, c.subject_id, subject_desc, units, day, time 
       FROM class c 
       INNER JOIN subject s 
       ON c.subject_id = s.subject_id 
       INNER JOIN lecturer l 
       ON c.lec_id = l.lec_id 
       WHERE l.lec_id = $id; 
Смежные вопросы

 Смежные вопросы