Я пытаюсь обновить базу данных mysql, но каждый раз получаю Notice: преобразование массива в строку. Я действительно не могу понять, что я делаю здесь неправильно. Может ли кто-нибудь любезно помочь?
Моя форма
<div class="panel-body">
<form role="form" method="post" action="client_post.php" class="form-horizontal">
<fieldset>
<div class="form-group">
<label class="col-sm-3 control-label">Hospital No:
</label>
<div class="col-sm-5">
<input required class="form-control" name="Hospital_no" placeholder="Patients' Hospital Number">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">Date of New Status</label>
<div class="form-group">
<label class="col-sm-3 control-label">New Status</label>
<div class="col-sm-5">
<select required name ="art_status" class="form-control">
<option></option>
<option value = "ART Restart" name="ART Restart">ART Restart</option>
<option value = "ART Transfer Out" name="ART Transfer Out" >ART Transfer Out</option>
<option value = "Pre ART Transfer Out" name="Pre ART Transfer Out">Pre ART Transfer Out</option>
<option value = "Lost to Followup" name="Lost to Followup">Lost to Followup</option>
<option value = "Stopped Treatment" name="Stopped Treatment">Stopped Treatment</option>
<option value = "Known Death" name="Known Death">Known Death</option>
</select>
</div>
</div><div class="form-group">
<div class="col-sm-offset-3 col-sm-5">
<input class="btn btn-primary" type="submit" value="Update" name="submit" >
</div>
</div>
</fieldset>
</form>
Я пытаюсь сделать обновление с этой страницы (client.php)
if($_SERVER['REQUEST_METHOD'] === 'POST')
{$Hosp_no = ['Hospital_no'];
$art_status = ['art_status'];
$art_date = ['art_start_date'];
$update_client = "UPDATE `pat_reg` SET `art_status` = '$art_status', `art_start_date` = '$art_date' WHERE `Hospital_no` = '$Hosp_no'";if (mysqli_query($dbcon,$update_client))
{
echo"<script>alert('Record Updated')</script>";
//echo"<script>window.open('client_update.php','_self')</script>";
}$dbcon->close();
}
Пожалуйста помоги.
С использованием $_POST
superglobal позволяет получить доступ к значениям, представленным в форме.
Измените следующее:
$Hosp_no = ['Hospital_no'];
$art_status = ['art_status'];
$art_date = ['art_start_date'];
к этому:
$Hosp_no = $_POST['Hospital_no'];
$art_status = $_POST['art_status'];
$art_date = $_POST['art_start_date'];
PS. Вы должны экранировать ввод пользователя перед запросом базы данных (или, в идеале, использовать готовые заявления) или вас могут очень быстро взломать, если они будут опубликованы.
Других решений пока нет …