【问题标题】:DATE_FORMAT() mysql code will work in PHPMyAdmin but not in PHPDATE_FORMAT() mysql 代码可以在 PHPMyAdmin 中工作,但不能在 PHP 中工作
【发布时间】:2016-01-20 19:17:59
【问题描述】:

我正在用 PHP 编写一个报告方法,它传递了两个参数 $location$weekYear$weekYear 是一个格式为2015-W34 的字符串,即 2015 年的第 34 周。我尝试运行的 sql 代码如下所示:

   $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() 导致此查询出现故障怎么办?

非常感谢任何帮助、建议和建议!

【问题讨论】:

  • 您使用DATE_FORMAT()而不是WEEKYEAR()的任何原因?
  • 在您的 php 代码运行第一个查询时,您是否检查了 mysql 错误?
  • 看不出明显的原因。通常这样的事情是由于你没有注意到的额外字符,比如空格。
  • 我尝试添加和 if else,else 运行 die(mysql_error() ) 但它通过了,一般没有 sql 错误。至于 WEEKYEAR(),是否仍然可以添加破折号和 W 作为格式选项?
  • 看起来它现在可以工作了,我删除了所有不必要的空格和线条,很奇怪......但谢谢大家的建议!

标签: php mysql


【解决方案1】:

你为那个 mysql 和 php 创建一个函数使用你的参数 $location 和 $weekYear 因为你的参数 WEEKYEAR 与标准格式不同,而 php 或 mysql 没有函数

【讨论】:

    猜你喜欢
    • 2018-06-19
    • 2013-03-14
    • 1970-01-01
    • 1970-01-01
    • 2015-05-17
    • 2018-07-19
    • 2013-03-29
    • 1970-01-01
    • 2012-10-24
    相关资源
    最近更新 更多