У вас есть ошибка в вашем синтаксисе SQL; проверьте руководство, которое соответствует вашей версии сервера MySQL для правильного синтаксиса

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());
?>

-2

Решение

  1. Если $srno это строка, которую вы пропустили кавычки вокруг нее

  2. $ab не определено

  3. Пожалуйста, не используйте mysql_* функции в новом коде. Они больше не поддерживаются и официально устарели. Увидеть красная коробка? Узнать о готовые заявления вместо этого и использовать PDO или же MySQLiЭта статья поможет вам решить, какой. Если вы выбираете PDO, вот хороший урок.

  4. Вы также широко открыты для Инъекции SQL

4

Другие решения

Для дальнейшей разработки Джон (Конде) ответ, 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,

1

По вопросам рекламы [email protected]