您的SQL语法有错误;请查看与MySQL服务器版本对应的手册以获得正确的语法


You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax

srno正在从文本框中成功提取

<?php
    $srno = $_POST['srno'];
    mysql_connect("localhost","root","");
    mysql_select_db("visit");
    $sql ="UPDATE visitor SET Exit='".$ab."' WHERE srno=$srno"; 
    mysql_query($sql) or die ("Error: ".mysql_error());
    ?>
  1. 如果$srno是一个字符串,则它周围缺少引号

  2. $ab未定义

  3. 请不要在新代码中使用mysql_*函数。它们不再被维护,并被正式弃用。看到红盒子了吗?了解准备好的语句,并使用PDO或MySQLi-本文将帮助您决定哪一个。如果你选择PDO,这里有一个很好的教程。

  4. 您也对SQL注入持开放态度

为了进一步阐述John(Conde)的答案exit是MySQL的保留字:

  • http://dev.mysql.com/doc/refman/5.5/en/reserved-words.html

要么将其重命名为其他名称,要么将其包装在反标记中:

$sql ="UPDATE visitor SET `Exit`='".$ab."' WHERE srno=$srno";
                          ^    ^ backticks

或者(如果$srno是字符串,正如John在回答中所说)

$sql ="UPDATE visitor SET `Exit`='".$ab."' WHERE srno='$srno'"; 

您在mysql_query()上使用了mysql_error(),这应该是语法错误的信号,您在问题中没有完全分享这一点,只是作为问题的标题,它没有向我们显示完整的错误消息,但我确信它的效果是
...MySQL server version for the right syntax near 'Exit...


错误报告添加到文件顶部,这将有助于生产测试。

error_reporting(E_ALL);
ini_set('display_errors', 1);

其将发出针对CCD_ 10的CCD_。

相关文章: