0

フォームからデータベースに挿入する日付を取得できないようです。助けてください!

ここに私のフォームがあります

echo '

<h1>Enter New Report</h1>
<form action="submitreport.php" method="post"
enctype="multipart/form-data">

 Date: <input type="text" name="Date" value='.$myDate.' /><br />
 Report:<br><TEXTAREA NAME=Report ROWS=4 COLS=40></TEXTAREA><br />
 <input type="submit" name="submit" value="Submit" />
 </form>

 ';
 ?> 

これは、データベースに送信するために私が書いたものです

$insertdate = trim($_POST['Date']);

$insertdate = mysql_real_escape_string($insertdate);
    $insertdate = date('m/d/Y', $insertdate);

echo $insertdate;


mysql_query("INSERT INTO `Reports`(`Date`, `Report`) VALUES ('$insertdate','$_POST[Report]')") or die("load1 -" .  mysql_error());


mysql_close();

echo "Thank You!" . " -" . "<a href='index.php' style='text-decoration:none;color:#ff0099;'> Return Home</a>";
?>
4

4 に答える 4

3

推測にすぎませんがDate、データベース内のフィールドのタイプはdateまたはdatetimeです。これらの形式はYYYY-mm-dd. コードを次のように変更してみてください。

$insertdate = date('Y-m-d', strtotime($_POST['Date']));

また、フォーマットする前に日付をタイムスタンプに変換していません。strtotime()ここにもデータを追加しました。

于 2012-10-04T14:10:18.160 に答える
2

PHP ではdate、2 番目のパラメーターとしてタイムスタンプが必要です。1 つでない場合$insertdateは機能しません。strtotime()ただし、PHP の関数を使用して文字列からタイムスタンプを取得することはできます。

dateまた、SQL ステートメントの値は、mysql データベースで使用されている型に従ってフォーマットする必要がありますdatetimetimestamp

于 2012-10-04T14:09:42.387 に答える
0

NOW() MySQL 関数を使用して、現在の日付/時刻をデータベースに挿入できます。これを機能させるには、Date、DateTime、または Timestamp フィールド タイプを使用する必要があります。

于 2012-10-04T14:09:45.910 に答える
0

わかりました $insertdate = trim($_POST['Date']);

$insertdate = mysql_real_escape_string($insertdate);
$insertdate = strtotime($insertdate);

    $insertdate = date('Y-m-d', $insertdate);

strtotime はそれを修正しましたが、日付形式を Ymd に再配置する必要がありました

お手伝いありがとう

于 2012-10-04T14:11:55.987 に答える