1

MYSQL の datetime フィールド タイプの日付のみを更新する際に問題があります。

PHP を使用してユーザー (dd/mm/yyyy) から入力を取得し、UPDATE mysql ステートメントを使用して日付のみを変更しています。ただし、日時フィールドには 0000-00-00 00:00:00 しか表示されません。

以下のコードは、XMLHttprequest を使用して値を渡す php から入力を取得した後にテーブルを更新する php ファイルのみです。

以下のコードを参照してください。

<?php include 'accesscontrol.php'; ?>
<?php
$q4=$_GET["q4"];

$user = $_SESSION['user'];

$date_array = explode( "/", $q4 );
$new = sprintf( '%4d-%02d-%02d', $date_array[2], $date_array[1], $date_array[0] );


$con = mysql_connect("localhost","tst","tst!@#");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }

mysql_select_db("test", $con);

mysql_query("UPDATE INVHDR_edit SET Invdate= concat ('$new', time(Invdate)) WHERE usr='$user'");


if (!mysql_query($sql,$con))
  {
  die('Error: ' . mysql_error());
  }

mysql_close($con);
?>
4

3 に答える 3

2

これを試して

<?php include 'accesscontrol.php'; 
$q4 = $_GET["q4"];
$user = $_SESSION['user'];
$dateSql = date("Y-m-d H:i:s",strtotime($q4));
$con = mysql_connect("localhost","tst","tst!@#");
if (!$con){
  die('Could not connect: ' . mysql_error());
}
mysql_select_db("test", $con);
mysql_query("UPDATE INVHDR_edit SET Invdate= '$dateSql' WHERE usr='$user'");
if (!mysql_query($sql,$con)){
  die('Error: ' . mysql_error());
}
mysql_close($con);
?>
于 2012-12-05T10:40:13.260 に答える
1

次のクエリを試してください。 UPDATE INVHDR_edit SET Invdate='".$new." 00:00:00' WHERE usr='$user'");

追加する時間が必要な場合は、次を使用してください。

$new = $new.date(" H:i:s");
mysql_query("UPDATE INVHDR_edit SET Invdate='$new' WHERE usr='$user'");
于 2012-12-05T10:30:18.753 に答える
0

これを試して ::

UPDATE INVHDR_edit SET Invdate= STR_TO_DATE(Invdate, '%d-%b-%y') WHERE usr='$user'");

変数を使用する場合:

UPDATE INVHDR_edit SET Invdate= STR_TO_DATE(@var1, '%d-%b-%y') WHERE usr='$user'");
于 2012-12-05T10:24:12.480 に答える