Я получаю сообщение об ошибке при использовании функции обновления на моем php - PullRequest
0 голосов
/ 11 апреля 2020

Код, который я пишу, предназначен для управления базой данных сотрудников, и мне нужно обновить установленные значения:

 $user =[
 "Ssn" => $_POST['Ssn'],
 "Fname" => $_POST['Fname'],
 "Minit" => $_POST['Minit'],
 "Lname" => $_POST['Lname'],
 "Salary" => $_POST['Salary'],
 "Address" => $_POST['Address'],
 "Sex" => $_POST['Sex'],
 "Super_ssn" => $_POST['Super_ssn'],
 "Dno" => $_POST['Dno']
 ];

Ниже приведена часть моего кода, которая подключается к SQL, чтобы обновите / отредактируйте мою базу данных.

$sql = "UPDATE employee
 SET Ssn = :Ssn,
 Fname = :Fname,
 Minit = :Minit,
 Lname = :Lname,
 Salary = :Salary,
 Address = :Address,
 Sex = :Sex,
 Salary = :Salary,
 Super_ssn = :Super_ssn,
 Dno = :Dno
 WHERE Ssn = :Ssn";

Здесь пользователь может сделать ввод.

<h2>Editing Employee</h2>
<form method="post">
 <label for="Ssn">Ssn</label>
 <input type="text" name="Ssn" id="Ssn", value="<?php echo escape($user['Ssn']); ?>
" >
 <label for="Fname">First Name</label>
 <input type="text" name="Fname" id="Fname", value="
 <?php echo escape($user['Fname']); ?>" >
 <label for="Minit">Middle Inital</label>
 <input type="text" name="Minit" id="Minit", value="
 <?php echo escape($user['Minit']); ?>" >
 <label for="Lname">Last Name</label>
 <input type="text" name="Lname" id="Lname" value="<?php echo escape($user
['Lname']); ?>">
 <label for="Address">Address</label >
 <input type="text" name="Address" id="Address" value="<?php echo escape($user['Address']);
?>">
 <label for="Sex">Sex</label>
 <input type="text" name="Sex" id="Sex" value="<?php echo escape($user
['Sex']); ?>">
 <label for="Salary">Salary</label>
 <input type="text" name="Salary" id="Salary" value="<?php echo escape($user['Salary']); ?>">
 <label for="Super_ssn">Super_ssn</label>
 <input type="text" name="Super_ssn" id="Super_ssn" value="<?php echo escape($user['Super_ssn']); ?>">
 <label for="Dno">Dno</label>
 <input type="text" name="Dno" id="Dno" value="<?php echo escape($user['Dno']); ?>">

 <input type="submit" name="submit" value="Submit">
</form>

Когда я нажимаю "Отправить", я получаю сообщение об ошибке, что Minit слишком длинный, но это только один символ Image of the php page

1 Ответ

0 голосов
/ 11 апреля 2020

В начале $Minit есть пробел, потому что вы разбили значение на несколько строк и отступили во второй строке. Поместите его в одну строку.

<input type="text" name="Minit" id="Minit", value="<?php echo escape($user['Minit']); ?>" >

или вы можете удалить окружающие пробелы при назначении переменной:

$user =[
 "Ssn" => trim($_POST['Ssn']),
 "Fname" => trim($_POST['Fname']),
 "Minit" => trim($_POST['Minit']),
 "Lname" => trim($_POST['Lname']),
 "Salary" => trim($_POST['Salary']),
 "Address" => trim($_POST['Address']),
 "Sex" => trim($_POST['Sex']),
 "Super_ssn" => trim($_POST['Super_ssn']),
 "Dno" => trim($_POST['Dno'])
 ];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...