MySQL 错误,“您的 SQL 语法有错误”


MySQL error, "You have an error in your SQL syntax"

我总是遇到这样的问题或错误:

您的 SQL 语法有误;请查看与您的 MySQL 服务器版本对应的手册,了解在第 1 行的"kunci=1 WHERE date='2013-09-01"和 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. 

有人可以帮助我吗?非常感谢。

$sql1=("UPDATE timetable SET shift='A' kunci=1 WHERE date='".$mcdate."' AND user_id='".$mcstaff."'");

应该是

$sql1=("UPDATE timetable SET shift='A', kunci=1 WHERE date='".$mcdate."' AND user_id='".$mcstaff."'");
                                      ^------  missing comma