Member 13965471 Ответов: 1

Как вставить данные в базу данных


Привет, я новичок в php. я хочу выбрать отдел из выпадающего списка, а затем вставить имя сотрудника,возраст и отдел в другую таблицу.

<div class="col">			
					<select onchange="document.myform.formVar.value=this.value">
					<?php 				
					$query = "SELECT * from mst_department "; 
					$result = mysqli_query($db, $query) or trigger_error( "Error!". mysqli_error($db));
					while($row = mysqli_fetch_array($result))	
					{
						echo"<option value='".$row[0]."'>".$row[1]."</option>";}?>
					</select>
					
					<form action="editor_staff.php" method="POST" name="myform">				
					<input type="hidden" name="new" value="1" />
					<input type="hidden" name="formVar" value="" />			
					<input type="text" name="name" required>	
					<input type="text" name="age" required>						
					<input type="submit" name="submit" value="save">					
					</form>	
</div>
<?php	 $db = mysqli_connect('localhost','root', '','multi_login');

if(isset($_POST['new']) && $_POST['new']==1)
{
$a =	$_POST['formVar'];
$b =	$_POST['name'];
$c =	$_POST['age'];
$insert= "INSERT into mst_employee (depart_id,name,age,total) VALUES ('$a', '$b', '$c', '')";
mysqli_query($db, $insert) or trigger_error( "Error!". mysqli_error($db));
header("location:editor_staff.php");			
}
 ?>	


Что я уже пробовал:

я думаю , что проблема возникла в mysqli, я попробовал вставить номер, он работает как обычно, но если я вставляю переменную, он не работает.

1 Ответов

Рейтинг:
1

Patrice T

$insert= "INSERT into mst_employee (depart_id,name,age,total) VALUES ('$a', '$b', '$c', '')";

Не обязательно решение вашего вопроса, но у вас есть еще одна проблема.
Никогда не создавайте SQL-запрос путем объединения строк. Рано или поздно вы сделаете это с помощью пользовательских вводов, и это откроет дверь к уязвимости под названием "SQL-инъекция", она опасна для вашей базы данных и подвержена ошибкам.
Одна кавычка в имени - и ваша программа выйдет из строя. Если пользователь вводит имя, например "Брайан О'Коннер", может привести к сбою вашего приложения, это уязвимость SQL-инъекции, и сбой-это наименьшая из проблем, вредоносный пользовательский ввод, и он продвигается к командам SQL со всеми учетными данными.
SQL-инъекция - Википедия[^]
SQL-инъекция[^]
Атаки SQL-инъекций на примере[^]
PHP: SQL-инъекция - руководство пользователя[^]
Шпаргалка по предотвращению инъекций SQL - OWASP[^]
Как я могу объяснить SQL-инъекцию без технического жаргона? - Обмен Стеками Информационной Безопасности[^]


Richard MacCutchan

Это не конкатенация строк.

Patrice T

Действительно, Вы правы, оператор конкатенации строк не используется.
PHP имеет специальный режим конкатенации, который заключается в том, что когда имя переменной находится в строке, имя переменной заменяется ее содержимым.