私は単純なタイムシート スクリプトをいじっているだけです。データベースに単純な挿入を行えば、すべて問題ありません。エントリも問題なく更新できます。私の問題は、情報を更新して保持したいということです(使用していた CONCAT で正常に機能していました)が、ON DUPLICATE KEY UPDATE を使用するとすぐに壊れます。
$sql="INSERT INTO sheet(employee, workdate, location, description, timein, timeout, timespent)
VALUES('$employee', CURDATE(), '$location', '$description', '$timein', '$timeout', '$timespent')";
//ON DUPLICATE KEY UPDATE
//location=VALUES(location),
//description=VALUES(description),
//timein=VALUES(timein),
//timeout=VALUES(timeout),
//timespent=VALUES(timespent)
//WHERE employee=$employee";
echo $sql;echo "<br>";
mysql_query($sql)or die(mysql_error());
重複キーのコメントを外すと、「SQL 構文にエラーがあります。MySQL サーバーのバージョンに対応するマニュアルを参照して、9 行目の 'WHERE employee='Eric'' 付近で使用する正しい構文を確認してください」というエラーが表示されます。私が考えることができる唯一のことは、完全に空のテーブルでこれを行っていることですが、INSERT がそれを修正したと考えました。私のすべての $variables はきれいです (PDO はありません、それも学ばなければなりません) ただ real_escape_string
$sql="INSERT INTO sheet(employee, workdate, location, description, timein, timeout, timespent)
VALUES('$employee', CURDATE(), '$location', '$description', '$timein', '$timeout', '$timespent')
ON DUPLICATE KEY UPDATE
location=VALUES(location),
description=VALUES(description),
timein=VALUES(timein),
timeout=VALUES(timeout),
timespent=VALUES(timespent)
WHERE employee='$employee'";
echo $sql;echo "<br>";
mysql_query($sql)or die(mysql_error());