0

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

您的 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. 

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

4

1 回答 1

5
$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
于 2013-09-05T17:51:43.330 回答