将MYSQL DATE格式转换为php的STRING格式

时间:2012-02-19 16:59:05

标签: php mysql variables date

我需要帮助将DATE格式转换为STRING格式。

我有一个来自mysql数据库列的变量,类型为DATE。

我想对它执行php explode()函数,但是我得到一个错误,说参数必须是一个字符串。

这是从数据库中获取变量的代码:

$duedate = mysql_query("SELECT duedate FROM mtt_todolist WHERE id=$id") ;

我想在$ duedate上使用explode()函数......

$date = explode("-", $duedate);

我收到此错误:

Warning: explode() expects parameter 2 to be string,

所以我需要将$ duedate转换为字符串类型。有帮助吗?谢谢。

4 个答案:

答案 0 :(得分:1)

$duedate是一种资源,您需要使用mysql_fetch_(something)来访问该资源的一行。 (有几个函数的名称以mysql_fetch开头。)

$result=mysql_query(...);
$row=mysql_fetch_assoc($result);
$duedate=$row['duedate'];

我更改了它,因此$ result是资源,$ row是该资源的一行,$duedate是您要追踪的数据。

在此之前使用@Steve建议的DATE_FORMAT

答案 1 :(得分:0)

mysql_fetch_assoc之后您遗漏了mysql_query

答案 2 :(得分:0)

您实际上可以在SQL中执行此操作,因此您不必在PHP中使用它:http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_date-format

例如,如果您希望将日期格式化为2000年4月12日,则可以执行以下操作:

SELECT 
  DATE_FORMAT(`duedate`, '%e %M, %Y') as `duedate`
FROM 
 `mtt_todolist`
WHERE 
  `id` = $id;

请记住确保$id被转义,这样您就不会成为SQL注入的受害者!

答案 3 :(得分:0)

mysql_query()返回资源,而不是实际结果。阅读示例以了解如何正确使用它。看起来你可能想做这样的事情:

$query = sprintf('SELECT duedate FROM mtt_todolist WHERE id = %s',
             mysql_real_escape_string($id)
         );
$result = mysql_query($query);
if (!$result) {
    $message  = 'Invalid query: ' . mysql_error() . "\n";
    $message .= 'Whole query: ' . $query;
    die($message);
}

// Use result
// Attempting to print $result won't allow access to information in the resource
// One of the mysql result functions must be used
// See also mysql_result(), mysql_fetch_array(), mysql_fetch_row(), etc.
while ($row = mysql_fetch_assoc($result)) {
    $date = explode('-', $row['duedate']);
    ...
}