Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.04.2020, 15:55   #1
Adam77
Пользователь
 
Регистрация: 12.03.2016
Сообщений: 46
По умолчанию PDO не отправляет в базу

Здравствуйте, изучаю PDO, пытаюсь отправить данные в БД ( предварительно защитив от SQL инъекций ), но почему-то данные в БД не отправляются, в чем дело, хотя из базы данные выводит корректно?
Спасибо за внимание=)

Файл отображения html (index.php)
Код:
<?php include 'in_out_parts.php'; ?>
<!DOCTYPE html>
<html >
<head>
	<meta charset="UTF-8">
	<style>
	.general table, tr, td{
			border-collapse: collapse;
			border: 2px solid black;
			border-spacing: 0;
		}
	#left{
		position:absolute;
		top:13%;
	}
	#header{
		position:absolute;
		top:0%;
	}
	#but{
		position:absolute;
		top:10%;
	}
	#noneborder{
		border:0;
	}
	</style>
</head>
<body>

	<h1 id="header">Конфигуратор комплектующих</h1>
	
	<div id="left">
		<h2>Комплектующие</h2>
		<div class="general">
		<form action="?" method "post">
			<table>
				<tr>
					<td>Название</td>
				</tr>
<?php
				while ($row = $result->fetch())
				{
					echo '<tr><td>' . htmlspecialchars($row['name'], ENT_QUOTES, 'UTF-8') . '</td></tr>';
				}
?>
				<tr>
					<td><input id="noneborder"  type="text"  name="part" /></td>
				</tr>
			</table>
		<input type="submit" name="save" value="Добавить" /></form><br><br>
		</div>	
	</div>
	<div id="but">
	<form action="../../">  
		  <button>Выход</button>
	</form>
	</div>
</body>
</html>
Файл контроллер вывода и отправки данных in_out_parts.php
Код:
<?php
include $_SERVER['DOCUMENT_ROOT']. '/includes/connect_mysql.php';
try
{
	$sql = 'SELECT name from CONFIGURATION_COMPONENTS';
	$result = $pdo->query($sql);
}
catch(PDOException $e)
{
	$output = 'Ошибка при выводе данных из БД: ' . $e->getMessage();
	include $_SERVER['DOCUMENT_ROOT']. '/includes/output.html.php';
	exit();
}

if (isset($_POST['save']))
{
	try
	{

		$sql = 'INSERT INTO CONFIGURATION_COMPONENTS SET
				name = " :part ",
				FlagHide = " 1 " ';
		$s = $pdo->prepare($sql);
		$s->bindValue(':part', $_POST['part']);
		$s->execute();
				
	}
	catch(PDOException $e)
	{
		$output = 'Ошибка при добавлении записи в БД: ' . $e->getMessage();
		include $_SERVER['DOCUMENT_ROOT']. '/includes/output.html.php';
		exit();
	}
	
	header('Location: .');
	exit();
}
?>
Adam77 вне форума Ответить с цитированием
Старый 09.04.2020, 20:27   #2
Adam77
Пользователь
 
Регистрация: 12.03.2016
Сообщений: 46
По умолчанию

Здесь же все просто для знающего человека=)
Adam77 вне форума Ответить с цитированием
Старый 09.04.2020, 22:34   #3
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,150
По умолчанию

Плюс он должен быть телепатом.. чтоб догадаться в чем проблема..
Какую ошибку то выдает?
Вангую что формат добавления в бд неверен
Классически
Код:
 INSERT INTO t (field1, field2) values (1, 2)
ADSoft вне форума Ответить с цитированием
Старый 10.04.2020, 12:38   #4
Adam77
Пользователь
 
Регистрация: 12.03.2016
Сообщений: 46
По умолчанию

Цитата:
Сообщение от ADSoft Посмотреть сообщение
Плюс он должен быть телепатом.. чтоб догадаться в чем проблема..
Какую ошибку то выдает?
Вангую что формат добавления в бд неверен
Классически
Код:
 INSERT INTO t (field1, field2) values (1, 2)
Ошибку никакую не выдает=)Сейчас попробую изменить формат
Adam77 вне форума Ответить с цитированием
Старый 10.04.2020, 12:53   #5
Adam77
Пользователь
 
Регистрация: 12.03.2016
Сообщений: 46
По умолчанию

Цитата:
Сообщение от ADSoft Посмотреть сообщение
Плюс он должен быть телепатом.. чтоб догадаться в чем проблема..
Какую ошибку то выдает?
Вангую что формат добавления в бд неверен
Классически
Код:
 INSERT INTO t (field1, field2) values (1, 2)
Сделал вот так
Код:
$sql = 'INSERT INTO CONFIGURATION_COMPONENTS (name, FlagHide) VALUES (`:part`, `1`)';
Все равно не работает
ошибку нашел, я в method="post" равно забыл поставить:D

Последний раз редактировалось Adam77; 10.04.2020 в 13:04.
Adam77 вне форума Ответить с цитированием
Старый 10.04.2020, 13:06   #6
Adam77
Пользователь
 
Регистрация: 12.03.2016
Сообщений: 46
По умолчанию

ADSoft, Еще такой вопрос, как высчитаете этого достаточно, чтобы минимально обезопасить от SQL инъекций?=)
Adam77 вне форума Ответить с цитированием
Старый 13.04.2020, 15:42   #7
agnerfist
Пользователь
 
Регистрация: 09.04.2020
Сообщений: 46
По умолчанию

какая версия php?
может сначало начнём что пытались сделать и что сделали?
agnerfist вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Форма не отправляет данные Morgusha JavaScript, Ajax 2 16.05.2018 12:01
Не отправляет на несколько адресов andriushka PHP 6 26.04.2018 06:40
Не отправляет базу данных почтой WRC fan 66 Работа с сетью в Delphi 0 08.12.2010 18:53
Не отправляет сообщения Mihanches Работа с сетью в Delphi 0 18.10.2010 17:18
TClientSocket не отправляет запрос Cold_Night Работа с сетью в Delphi 0 17.02.2010 21:43