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());
?>
Если $srno
это строка, которую вы пропустили кавычки вокруг нее
$ab
не определено
Пожалуйста, не используйте mysql_*
функции в новом коде. Они больше не поддерживаются и официально устарели. Увидеть красная коробка? Узнать о готовые заявления вместо этого и использовать PDO или же MySQLi — Эта статья поможет вам решить, какой. Если вы выбираете PDO, вот хороший урок.
Вы также широко открыты для Инъекции SQL
Для дальнейшей разработки Джон (Конде) ответ, exit
является зарезервированным словом MySQL:
Либо переименуйте его во что-нибудь другое, либо оберните в обратные черты:
$sql ="UPDATE visitor SET `Exit`='".$ab."' WHERE srno=$srno";
^ ^ backticks
или если $srno
это строка, как сказал Джон в своем ответе)
$sql ="UPDATE visitor SET `Exit`='".$ab."' WHERE srno='$srno'";
Вы использовали mysql_error()
на mysql_query()
который должен был сигнализировать о синтаксической ошибке, о которой вы не поделились полностью в своем вопросе, только как заголовок вопроса, который не показывает нам полное сообщение об ошибке, однако я уверен, что это что-то вроде эффекта
...MySQL server version for the right syntax near 'Exit...
добавлять Отчет об ошибках к началу вашего файла (ов), которые помогут во время производственного тестирования.
error_reporting(E_ALL);
ini_set('display_errors', 1);
который будет сигнализировать Undefined variable...
предупреждение для $ab
,