2012-02-19 20 views
1

DATE形式をSTRING形式に変換するのに役立つ必要があります。PHPのMYSQL DATE形式をSTRING形式に変換する

私はDATE型のmysqlデータベース列の変数を持っています。

php explode()関数を実行したいのですが、パラメータが文字列でなければならないというエラーが表示されます。

これは、データベースから変数を取得するためのコードです:

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

私はその後の$ duedate爆発()関数を使用したい...

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

私はこのエラーを取得します:

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

だから、私は$ duedateを文字列に変換する必要があります。どんな助け?ありがとうございました。

+0

「var_dump($ duedate)」と書かれているようです。私はそれも日付ではないと確信しています。おそらく、結果セットまたは "リソース"になるでしょう。この場合、 '$ duedate-> duedate'が動作するかもしれません。 –

+1

mysql_fetch_rowなどを使用して、リソース・リンクから行をフェッチするのを忘れてしまいました。 –

+0

データベースを照会する方法の例については、[manual](http://php.net/mysql_query)を参照してください。 –

答えて

1

$duedateがリソースの場合、そのリソースの行にアクセスするにはmysql_fetch_(something)を使用する必要があります。 (名前mysql_fetchで始まるいくつかの機能があります。)

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

私は$結果は資源であるので、$行は、そのリソースのうちの行で、$duedateあなたは後にしているデータであることを変更しました。

これまでのコードで@Steveの示唆通りにDATE_FORMATを使用してください。あなたがPHPでそれを周りに混乱する必要はありませんので、あなたが実際にSQL内でこれを行うことができます

+0

ありがとう、これは働いた。 – user1197558

0

mysql_queryの後にmysql_fetch_assocがありません。

0

:たとえば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; 

そして、あなたは、SQLインジェクションの犠牲にしないように$idがエスケープされていることを確認することを忘れないでください!

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']); 
    ... 
} 
関連する問題