$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 .