Почему я получаю ошибку MySQL «Запрос пуст»?

$id = $_REQUEST['id']; $Section = $_REQUEST['section']; $Subject = $_REQUEST['subject']; $type = $_REQUEST['type']; $Start_date1 = isset($_REQUEST['startTxt'])?($_REQUEST['startTxt']):""; $Venue = isset($_REQUEST['venTxt'])?($_REQUEST['venTxt']):""; $Facilitator = isset($_REQUEST['faciTxt'])?($_REQUEST['faciTxt']):""; $Level = isset($_REQUEST['lvlLst'])?($_REQUEST['lvlLst']):""; $Date1 = $_REQUEST['date1']; if(isset($_REQUEST['EDIT'])) { mysql_query("UPDATE service SET Start_date='$Date1', Venue='$Venue', Facilitator='$Faci' WHERE ServiceID ='$id'"); if (!mysql_query($sql,$con)) { die('Error: ' . mysql_error()); } echo '<script type="text/javascript">'; echo 'alert("Changes have been save!");'; echo 'window.location="Admin_RecSchedMapLst.php";'; echo '</script>'; mysql_close($con); } 

Когда я нажимаю «Сохранить», возвращается «Ошибка: запрос был пуст» – почему это?

Вы вызываете mysql_query() дважды, один раз с несуществующим параметром $sql :

 mysql_query("UPDATE service SET Start_date='$Date1', Venue='$Venue', Facilitator='$Faci' WHERE ServiceID ='$id'"); if (!mysql_query($sql,$con)) 

должно быть:

 if (!mysql_query("UPDATE service SET Start_date='$Date1', Venue='$Venue', Facilitator='$Faci' WHERE ServiceID ='$id'")) 

Вы также не ускользаете от своего ввода, оставив вас открытым для SQL-инъекции. Вы должны использовать привязанные параметры в идеале или, по крайней мере, запускать свои параметры через mysql_real_escape_string() .

Например:

 $Date1 = mysql_real_escape_string($Date1, $conn); 

Вы не задаете переменную $ sql и дважды вызываете mysql_query ().

Пожалуйста, для любви к Интернету, не строите SQL-запрос самостоятельно. Используйте PDO .