我需要帮助将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转换为字符串类型。有帮助吗?谢谢。
答案 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']);
...
}