我总是遇到这样的问题或错误:
您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的 `'kunci=1 WHERE date='2013-09-01' AND user_id='2'' 附近使用正确的语法
这是我的php编码:
if(isset($_POST['mc'])) {
$mcdate = $_POST['mcdate'];
$mcstaff = $_POST['mcstaff'];
$sql = mysql_query("
SELECT *
FROM timetable
WHERE
date ='" . $mcdate . "'
AND shift='O'
AND user_id='" . $mcstaff . "'");
$counto = mysql_num_rows($sql);
echo $counto;
if ($counto == 0) {
$sql1 = "
UPDATE timetable
SET
shift='A'
kunci=1
WHERE
date='" . $mcdate . "'
AND user_id='" . $mcstaff . "'";
mysql_query($sql1) or die(mysql_error());
$sql2 = mysql_query("
SELECT *
FROM timetable
WHERE date ='" . $mcdate . "'
AND shift='M'");
$countm=mysql_num_rows($sql2);
//echo $countm;
$sql3 = mysql_query("
SELECT *
FROM timetable
WHERE
date ='" . $mcdate . "'
AND shift='E'");
$counte=mysql_num_rows($sql3);
//echo $counte;
//balance shift
if($counte==$countm) {
$rand=rand(0, 2);
if($rand==0) {
$shift = 'M';
} else {
$shift = 'E';
}
} else if ($countm>$counte) {
$shift = 'E';
} else if ($counte>$countm) {
$shift = 'M';
}
} else if ($counto == 1) {
echo "Staff already Off";
}
}
我也尝试将数据库、表和列名包含在反引号中以防止此类冲突,但它仍然会出现此错误。
我还意识到,在我的 MySQL 时间表表中,对“班次”结构进行了整理。不知道能不能有效果。
我的桌子=时间表:
name: shift, type:varchar(10), collation:latin1_swedish_ci.
有人可以帮助我吗?非常感谢。