2012-02-19 112 views
1

我需要帮助将DATE格式转换为STRING格式。将MYSQL DATE格式转换为STRING格式,用于php

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

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

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

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

我于是想使用$交货期的爆炸()函数...

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

我得到这个错误:

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

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

+0

做'var_dump($ duedate)'。我敢打赌这也不是一个约会。这可能是结果集或“资源”。在这种情况下,'$ duedate-> duedate'可能会起作用。 – 2012-02-19 17:01:37

+1

您忘记从资源链接中获取行,使用'mysql_fetch_row'或类似的。 – 2012-02-19 17:01:59

+0

有关如何查询数据库的示例,请参见[manual](http://php.net/mysql_query)。 – 2012-02-19 17:03:05

回答

1

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

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

我改变它,以便$结果是资源,$行是行的是资源,而$duedate是你后的数据。

使用DATE_FORMAT在此之前您的代码中由@Steve建议。

+0

谢谢,这工作。 – user1197558 2012-02-19 17:21:50

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']); 
    ... 
}