[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Ошибка при добавлении записи в таблицу
dmitruha
Очень странное дело. Писал на домашнем компьютере (Denwer PHP 5.12.12 SQL 5.1.40) скрипт добавления записи в таблицу "filmbd". Все работало пока не перенес сайт на локальный сервер (MySQL 5.1.40 PHP 5.2.0). По условию выводит сообщение: "Фильм не добавлен!".
Данные из форм передаются, проверено. Ошибка кроется в строчке INSERT INTO. Не пойму где.
Вот код обработчика:
<?php 
include ("blocks/bd.php");include ("lock.php");

if (isset($_POST['title'])) {$_title = $_POST['title'];
if ($title == '') {unset($title);}}

if (isset($_POST['year'])) {$_year = $_POST['year'];
if ($year == '') {unset($year);}}

if (isset($_POST['rey_k'])) {$_rey_k = $_POST['rey_k'];
if ($rey_k == '') {unset($rey_k);}}

if (isset($_POST['rey_i'])) {$_rey_i = $_POST['rey_i'];
if ($rey_i == '') {unset($rey_i);}}

if (isset($_POST['top'])) {$_top = $_POST['top'];
if ($top == '') {unset($top);}}

if (isset($_POST['description'])) {$_description = $_POST['description'];
if ($description == '') {unset($description);}}

if (isset($_POST['text'])) {$_text = $_POST['text'];
if ($text == '') {unset($text);}}
?>


<!--Проверка введенных данных-->
<?php mysql_query ("SET NAMES cp1251");


if (isset($title) && isset($year) && isset($description) && isset($text)&& isset($rey_k)&& isset($rey_i)&& isset($top))
{
echo "Переменные существуют!";
$result = mysql_query
("
INSERT INTO filmbd (title,year,rey_k,rey_i,top,description,text)
VALUES ('
$title','$year','$rey_k','$rey_i','$top','$description','$text')
"
);

if ($result == 'true') {echo "<p>Фильм успешно добавлен</p>";}
else {

echo "<p>Фильм не добавлен!</p>";

}

}


else {echo "<p>Введена не вся информация</p>";}
?>




Спустя 9 минут, 28 секунд (22.07.2011 - 13:16) waldicom написал(а):
Цитата (dmitruha @ 22.07.2011 - 11:06)
Ошибка кроется в строчке INSERT INTO. Не пойму где.

Для этого достаточно написать вот так:
$result = mysql_query  
("
INSERT INTO filmbd (title,year,rey_k,rey_i,top,description,text)
VALUES ('
$title','$year','$rey_k','$rey_i','$top','$description','$text')
"
) orr die (mysql_error());

Спустя 41 минута, 59 секунд (22.07.2011 - 13:58) dmitruha написал(а):
Удалите тему ) В запросе я не учел еще одно поле, поэтому запрос не мог пройти успешно.
Как раз функция mysql_error() помогла найти проблему.

Спустя 2 часа, 59 минут, 11 секунд (22.07.2011 - 16:57) Zerstoren написал(а):
Ололо! Индийский код!

Можно использовать цикл)



foreach($_POST as $key=>$val)
if (isset($_POST[$key])) {
$$key = $_POST[$key];
if ($$key == '') {unset($$key);}
}

// Правда Ня?

Спустя 1 минута, 29 секунд (22.07.2011 - 16:58) waldicom написал(а):
Цитата (Zerstoren @ 22.07.2011 - 14:57)
Можно использовать цикл)

foreach($_POST as $key=>$val)
if (isset($_POST[$key])) {
$title = $_POST[$key];
if ($title == '') {unset($$key);}
}


Правда Ня?

Не уверен, что означает "ня", но видимо это высшая степень восхищения? smile.gif
В общем ниразу не "ня", простите конечно.

Спустя 1 час, 47 минут, 57 секунд (22.07.2011 - 18:46) Zerstoren написал(а):
Ой) Не все переменные в нужный вид привел.

Вообще, если мы проверяем все что пришло с формы, то почему бы и не заюзать цикл?

Спустя 4 минуты, 27 секунд (22.07.2011 - 18:51) waldicom написал(а):
Цитата (Zerstoren @ 22.07.2011 - 16:46)
Вообще, если мы проверяем все что пришло с формы, то почему бы и не заюзать цикл?

Одна из причин - приходить может гораздо больше, чем нужно проверять.

Спустя 1 минута, 12 секунд (22.07.2011 - 18:52) ADiel написал(а):
if (empty($_POST[$key])) unset ($_POST[$key]);

Это в случае с циклом.

Спустя 2 минуты, 16 секунд (22.07.2011 - 18:54) Zerstoren написал(а):
Но все равно остается одна бреж)
если в форме в нейм добавят []

Не хорошо получится(((
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.