Помогите с sql запросом

Проблемы с установкой или работой phpBB 2.0.x? Ищите ответы здесь!
Diver
phpBB 1.2.0
Сообщения: 15
Стаж: 19 лет 8 месяцев
Откуда: 25 RUS

Помогите с sql запросом

Сообщение Diver »

Здрасте.
форум 2.0.18.
в usercp_register.php добавил новый запрос после этого:

Код: Выделить всё

if ( !($result = $db->sql_query($sql , BEGIN_TRANSACTION)) )
			{
				message_die(GENERAL_ERROR, 'Could not insert data into users table', '', __LINE__, __FILE__, $sql);
			}
собственно новый код(запрос):

Код: Выделить всё

if ($child_number > 0)
			{
				$c_number = ($child_number > 9) ? 9 : $child_number;
				$sql = '';
				for ($i = 1; $i <= $c_number;)
				{
					$sql .= "INSERT INTO " . CHILDREN_TABLE . " (child_name, child_gender, user_id, child_birth_year, child_birth_month, child_birth_day) 
					VALUES ('$childname_[$i]', '$child_gender_[$i]', '$user_id', '$child_birthdate_year_[$i]', '$child_birthdate_month_[$i]',  '$child_birthdate_day_[$i]');\n";
					$i++;
									}
				if ( !($result = $db->sql_query($sql)) )
				{
					message_die(GENERAL_ERROR, 'Could not insert data into children table', '', __LINE__, __FILE__, $sql);
				}
			}
потом при регистрации заполняю формы (добавил новые), жму ок и вылазеет ошибка:

Код: Выделить всё

Could not insert data into children table

DEBUG MODE

SQL Error : 1064 You have an error in your SQL syntax near '; INSERT INTO children (child_name, child_gender, user_id, child_birth_year, chi' at line 2

INSERT INTO children (child_name, child_gender, user_id, child_birth_year, child_birth_month, child_birth_day) VALUES ('vvvvv', '1', '19', '1963', '3', '5'); INSERT INTO children (child_name, child_gender, user_id, child_birth_year, child_birth_month, child_birth_day) VALUES ('cvcv', '2', '19', '1962', '2', '3'); 

Line : 698
File : usercp_register.php
Никак не могу понять что в запросе неправильно?
соответсвующая таблица есть, поля тоже созданы, имя таблицы прописано где то где прописаны имена всех таблиц.
Аватара пользователя
crash
Former team member
Сообщения: 6517
Стаж: 20 лет 10 месяцев
Откуда: Бердск

Сообщение crash »

Diver писал(а):, '5'); INSERT
может перенос строки должен быть?
Diver писал(а):);\n";
видимо не срабатывает
Как правильно задавать вопросы
Для особо одаренных: поиск - это есть круто.
FAQ v.2 | FAQ v.3 | Шаблон запроса
Diver
phpBB 1.2.0
Сообщения: 15
Стаж: 19 лет 8 месяцев
Откуда: 25 RUS

Сообщение Diver »

непонял. убрать \n ? пробовал. был просто пробел, вобще не было пробела. один и тот же резалт
Аватара пользователя
crash
Former team member
Сообщения: 6517
Стаж: 20 лет 10 месяцев
Откуда: Бердск

Сообщение crash »

Diver писал(а):INSERT INTO children (child_name, child_gender, user_id, child_birth_year, child_birth_month, child_birth_day) VALUES ('vvvvv', '1', '19', '1963', '3', '5');
попробуйте вставить через пхпмайадмин, потом удалите, если вставится.
Diver писал(а):убрать \n
по идее это должно переводить строку, хотя может заменить "\n"
Как правильно задавать вопросы
Для особо одаренных: поиск - это есть круто.
FAQ v.2 | FAQ v.3 | Шаблон запроса
Diver
phpBB 1.2.0
Сообщения: 15
Стаж: 19 лет 8 месяцев
Откуда: 25 RUS

Сообщение Diver »

попробовал вот так

Код: Выделить всё

_day_[$i]');" . "\n";
тоже самое.
crash писал(а):попробуйте вставить через пхпмайадмин, потом удалите, если вставится.
вставилось, даже два запроса вставилось, через пробел
Xpert
phpBB Guru
phpBB Guru
Сообщения: 5484
Стаж: 21 год 2 месяца
Поблагодарили: 2 раза

Сообщение Xpert »

Diver
Запросы надо по одному выполнять, т.е.

Код: Выделить всё

if ( !($result = $db->sql_query($sql)) ) 
{ 
    message_die(GENERAL_ERROR, 'Could not insert data into children table', '', __LINE__, __FILE__, $sql); 
}
... тоже должно быть внутри цикла.
Эксперт - это человек, который избегает мелких ошибок на пути к грандиозному провалу.
Любая более-менее сложная задача имеет несколько простых, изящных, лёгких для понимания неправильных решений
Diver
phpBB 1.2.0
Сообщения: 15
Стаж: 19 лет 8 месяцев
Откуда: 25 RUS

Сообщение Diver »

это ограничение конекретно phpBB?
Xpert писал(а):Запросы надо по одному выполнять, т.е.
Добавлено спустя 8 минут 21 секунду:

спасибо так заработало

Вернуться в «Поддержка phpBB 2.0.x»