powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / (PHP) Вставка данных в таблицу
4 сообщений из 4, страница 1 из 1
(PHP) Вставка данных в таблицу
    #33790725
GetAnswer()
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Последнее время меня начал волновать вопрос как вставлять в базу данных(mysql) данные принятые из формы, которые могут быть не обязательными, тоесть пустыми.

Например - если в форме из которой приходят данные есть необязательные поля("примечание" и т.п), то когда хочешь писать их в базу, то получается, что пишется пустое значение в ячейку таблицы, а по логике надо чтобы не писалось ничего, точнее значение NULL.

В разное время приходили разные ршения этой проблемы, такие как перепесивание запросов в теле условия проверки каждой переменной. Например:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
$var1 =$_POST['var1'];
$var2 =$_POST['var2'];
$var3 =$_POST['var3'];

if(empty($var1) {
$query = "INSERT INTO(field2, field3) VALUES('$var2', '$var3');
}

if(empty($var2) {
$query = "INSERT INTO(field1, field3) VALUES('$var1', '$var3');
}

if(empty($var3) {
$query = "INSERT INTO(field1, field2) VALUES('$var1', '$var2');
}
И вообще я завёл эту тему для того чтобы узнать как вы решаете эту проблемму и узнать ваши мнения по поводу этой проблеммы, т.к я думаю не у одного меня возникала такая проблемма. И хоелось бы узнать стоит ли заморачиваться на эту тему или просто вставлять вместо NULL те значение которые пришли, то есть пустые.

Вот полследнее моё решение - оцените
===============================
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
		function Insert($table, $fields, $values) {
			$arr_values = explode(', ', $values);
			$new_arr_values = array_map('EditValue', $arr_values);
			$new_values = implode(', ', $values);
			$query = "INSERT INTO $table($fields) VALUES($new_values)";
			$reply = mysql_query($query);
			
			if($reply)
				$result = mysql_insert_id();
			else
				$result = FALSE;
				
			return $result;
		}

		function EditValue($value) {
			$new_value = empty($value)? 'NULL': "'$value'";
		}
Модератор:
Пожалуйста, используйте теги форматирования, что бы облегчить остальным участникам чтение ваших постов.
...
Рейтинг: 0 / 0
(PHP) Вставка данных в таблицу
    #33791597
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а эскейпишь где?
...
Рейтинг: 0 / 0
(PHP) Вставка данных в таблицу
    #33797115
GetAnswer()
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не понял. Что такое эскейпишь?
...
Рейтинг: 0 / 0
(PHP) Вставка данных в таблицу
    #33797157
*
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
*
Гость
GetAnswer()Не понял. Что такое эскейпишь? http://phpfaq.ru/slashes
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / (PHP) Вставка данных в таблицу
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]