2015-10-21 77 views
3

我在PHP中編寫了一個報告方法,它通過了2個參數$location$weekYear$weekYear是格式化像2015-W34一個字符串,即2015年的SQL代碼34rth星期我試圖運行的樣子:DATE_FORMAT()mysql代碼將在PHPMyAdmin中工作,但不在PHP中

$sql = "SELECT 
      CONCAT(tutor.first_name, ' ', tutor.last_name) AS Student, 
      CONCAT(tutor.first_name, ' ', tutor.last_name) AS Tutor, 
       hours as HoursWorked, 
       DATE_FORMAT(work_date, '%a - %b %d') AS Day, 
       DATE_FORMAT(start_time, '%H') AS Hour, 
       DATE_FORMAT(start_time, '%i') AS Minute 

      FROM timesheet_entry 

      LEFT 
      JOIN user 
      AS student 
      ON student.id = timesheet_entry.student_id 

      LEFT 
      JOIN user 
      AS tutor 
      ON tutor.id = timesheet_entry.tutor_id 

     WHERE DATE_FORMAT(work_date,'%x-W%v') = '".$weekYear."' 
      AND tutoring_location = '".$location."' 
      AND work_type = 'instruction' 
      AND (instruction_type = '1-on-1' OR instruction_type = 'group')"; 


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

當我在PHP運行代碼我沒有得到任何結果返回 但是當我回聲$ sql,然後將其粘貼到PhpMyAdmin我得到我期望的結果。

而且如果我刪除了部分

DATE_FORMAT(work_date,'%x-W%v') = '".$weekYear."' 

的方法運行,並返回更多的記錄比我想要的,但它仍然運行。

那麼我的DATE_FORMAT()是什麼導致此查詢故障?

任何幫助,意見和建議,非常感謝!

+0

任何原因,你正在使用'DATE_FORMAT()'而不是'WEEKYEAR()'? – Barmar

+1

您是否檢查了第一個查詢從您的php代碼運行的情況下的mysql錯誤? – Shadow

+0

看不到一個明顯的原因。通常情況下,這是由於你沒有注意到的額外字符,比如空格。 – Barmar

回答

-1

我的事情,你做一個函數,該函數MySQL和PHP的使用參數$位置和$ weekYear因爲你的參數WEEKYEAR被diferetn到STANDAR格式和PHP或MySQL不函數

相關問題