[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: INSERT в базу данных
Kumirska
Привет,Уважаемые форумчане.
На Денвере работало добавление отделов в базу данных,после сборки сервера вручную
перестала работать функция Insert, хотя UPDATE и DELETE работают по-прежнему. Методом
пост приходят переменные,они действительно приходят из скрипта заполнения форм в
скрипт обработки и дабавления в базу,но инсерт не срабатывает,выдает сообщение:

Отдел не добавлен. Но все переменные введеные в формы выводит мне: 'a','c', 'd', 'b', 'f', 'z',
'e'. Таким образом переменные все приходят методом пост,но не добавляются в базу.

Подскажите в чем ошибка??


if (isset($title,$meta_d,$meta_k,$name,$description,$text,$logo))

{result = mysql_query ("INSERT INTO otdel
(title,meta_d,meta_k,name,description,text,logo) VALUES ('
$title','$meta_d', '$meta_k', '$name',
'
$description', '$text', '$logo')",
$db);
if ($result == 'true') {echo "<p><b><font color='cc3333'>Отдел успешно
добавлен!</font></b></p>"
;}
else {echo "<p><b><font color='cc3333'>Отдел не добавлен. '$title','$meta_d',
'
$meta_k', '$name', '$description', '$text', '$logo'</font></b></p>";}

}

else
{
echo "<p><font color='cc3333'> Вы заполнили не все поля,вернитесь
назад и повторите заполение.</font> </p>"
;
}




Спустя 31 минута, 17 секунд (13.06.2011 - 09:12) inpost написал(а):
Kumirska
Попов, ай-да ко мне в подпись и учись правильно делать.

$title не равна $_POST['title']; Поэтому все переменные замени на $_POST и будет работать.
Если вдруг снова нет, тогда сюда выложи и форму тоже.

Спустя 6 минут, 59 секунд (13.06.2011 - 09:19) linker написал(а):
Поповс.
INSERT INTO `otdel` (`title`,`meta_d`,`meta_k`,`name`,`description`,`text`,`logo`) ...

Спустя 6 минут, 20 секунд (13.06.2011 - 09:26) Kumirska написал(а):
if (isset($_POST(`title`),$_POST(`meta_d`),$_POST(`meta_k`),$_POST(`name`),$_POST(`description`),$_POST(`text`),$_POST(`logo`)))
{
$result = mysql_query ("INSERT INTO otdel (title,meta_d,meta_k,name,description,text,logo) VALUES (`$_POST(`title`)`,
`
$_POST(`meta_d`)`, `$_POST(`meta_k`)`, `$_POST(`name`)`, `$_POST(`description`)`, `$_POST(`text`)`, `$_POST(`logo`)`)",$db);


Ошибка: Fatal error: Can't use function return value in write context in C:\apache\localhost\www
\mark\admin\new_dep.php on line 104

104.
 if (isset($_POST(`title`),$_POST(`meta_d`),$_POST(`meta_k`),$_POST(`name`),
$_POST(`description`),$_POST(`text`),$_POST(`logo`)))

Спустя 18 минут, 8 секунд (13.06.2011 - 09:44) Kumirska написал(а):
Ошибка тем не менее осталась:

Fatal error: Can't use function return value in write context in C:\apache\localhost\www\mark
\admin\new_dep.php on line 104




Спустя 15 минут, 3 секунды (13.06.2011 - 09:59) Kumirska написал(а):
user posted image

Спустя 40 минут, 12 секунд (13.06.2011 - 10:39) inpost написал(а):
Kumirska
VALUES (`$_POST(`title`)`, - и кавычка вылетела. и $_POST['title'] , скобки то не круглые.

Спустя 18 минут, 34 секунды (13.06.2011 - 10:58) Kumirska написал(а):
if (isset($_POST['title'],$_POST['meta_d'],$_POST['meta_k'],$_POST['name'],$_POST
['description'],$_POST['text'],$_POST['logo']))
{
$result = mysql_query ("INSERT INTO otdel
(title,meta_d,meta_k,name,description,text,logo) VALUES ('
$_POST[title]','$_POST
[meta_d]','$_POST[meta_k]','$_POST[name]','$_POST[description]','$_POST[text]','$_POST[logo]'",
$db);
if ($result == TRUE) {echo "<p><b><font color='cc3333'>Отдел успешно
добавлен!</font></b></p>"
;}
else {echo mysql_error()."<p><b><font color='cc3333'>Отдел не добавлен. </
font></b></p>"
.$_POST['title'],$_POST['meta_d'],$_POST['meta_k'],$_POST['name'],$_POST
['description'],$_POST['text'],$_POST['logo'];}
}

"Отдел не добавлен" показывает. Вписал еще mysql_error(); выдал :
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server
version for the right syntax to use near '' at line 1

переменные приходят,то есть не пустые они,все 7 переменных пришли и через echo
высветились
почему направильный синтаксис,вроде все верно написано??

Спустя 25 минут, 57 секунд (13.06.2011 - 11:24) ИНСИ написал(а):
Kumirska видно в тексте или еще где-то, ты передаешь одинарные ковычки и т.д... и перед тем как заносить в БД надо все это дело обрабатывать. Попробуй код ниже:

if(isset($_POST['title'],$_POST['meta_d'],$_POST['meta_k'],$_POST['name'],$_POST['description'],$_POST['text'],$_POST['logo'])) {

function safesql($source) {
$source = trim($source);
if(get_magic_quotes_gpc()) $source = stripslashes($source);
return mysql_real_escape_string($source);
}

$result = mysql_query("
INSERT
INTO `otdel`(`title`,`meta_d`,`meta_k`,`name`,`description`,`text`,`logo`)
VALUES('"
.safesql($_POST['title'])."','".safesql($_POST['meta_d'])."','".safesql($_POST['meta_k'])."',
'"
.safesql($_POST['name'])."','".safesql($_POST['description'])."','".safesql($_POST['text'])."',
'"
.safesql($_POST['logo'])."'
)
"
) or die(mysql_error());

echo "<p><b><font color='cc3333'>Отдел успешно добавлен!</font></b></p>";
}

Спустя 16 минут, 24 секунды (13.06.2011 - 11:40) Kumirska написал(а):
velbox сделал так как ты написал




if(isset($_POST['title'],$_POST['meta_d'],$_POST['meta_k'],$_POST['name'],$_POST
['description'],$_POST['text'],$_POST['logo'])) {

function safesql($source) {
$source = trim($source);
if(get_magic_quotes_gpc()) $source = stripslashes($source);
return mysql_real_escape_string($source);
}

$result = mysql_query("
INSERT
INTO `otdel`(`title`,`meta_d`,`meta_k`,`name`,`description`,`text`,`logo`)
VALUES('"
.safesql($_POST['title'])."','".safesql($_POST['meta_d'])."','".safesql
($_POST['meta_k'])."',
'"
.safesql($_POST['name'])."','".safesql($_POST
['description'])."','".safesql($_POST['text'])."',
'"
.safesql($_POST['logo'])."'
"
) /*or die(mysql_error())*/;

if ($result == TRUE) {echo "<p><b><font color='cc3333'>Отдел успешно добавлен!
</font></b></p>"
;}
else {echo mysql_error()."<p><b><font color='cc3333'>Отдел не добавлен. </
font></b></p>"
.$_POST['title'],$_POST['meta_d'],$_POST['meta_k'],$_POST['name'],$_POST
['description'],$_POST['text'],$_POST['logo'];}

}

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 5

Отдел не добавлен.
acdbfge //те самы переменные пришли,но не вставились в базу.

Спустя 19 минут, 55 секунд (13.06.2011 - 12:00) Игорь_Vasinsky написал(а):
У тя в БД столбцы так же идут в том же порядке ? ни какой не пропущен?

Посмотри какя я ошибка

	
$result = mysql_query("INSERT INTO `otdel`
(`title`,`meta_d`,`meta_k`,`name`,`description`,`text`,`logo`)
VALUES('"
.safesql($_POST['title'])."','".safesql($_POST['meta_d'])."','".safesql($_POST['meta_k'])."',
'"
.safesql($_POST['name'])."','".safesql($_POST['description'])."',
'"
.safesql($_POST['text'])."',
'"
.safesql($_POST['logo'])."'") or die(mysql_error());

Спустя 23 минуты, 32 секунды (13.06.2011 - 12:24) Kumirska написал(а):
if(isset($_POST['title'],$_POST['meta_d'],$_POST['meta_k'],$_POST['name'],$_POST
['description'],$_POST['text'],$_POST['logo'])) {



$result = mysql_query(" INSERT
INTO otdel(title,meta_d,meta_k,name,description,text,logo)
VALUES('"
.$_POST['name']."','".$_POST['title']."','".$_POST['meta_d']."',
'"
.$_POST['meta_k']."','".$_POST['logo']."',0,0,'".$_POST
['description']."'
'"
.$_POST['text']."',0 "); /*or die(mysql_error())*/

if ($result == TRUE) {echo "<p><b><font color='cc3333'>Отдел успешно добавлен!
</font></b></p>"
;}
else {echo mysql_error()."<p><b><font color='cc3333'>Отдел не добавлен. </
font></b></p>"
.$_POST['name'],$_POST['title'],$_POST['meta_d'],$_POST['meta_k'],$_POST
['logo'],$_POST['description'],$_POST['text'];} }


все расставил по порядку следования в таблице, дописал 3 недостающих переменные
(кроме айди- у него автоинкремент стоит) присвоив им значения 0, все равно та же ошибка:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server
version for the right syntax to use near '' at line 5

Отдел не добавлен.
bacdefz

все 7 переменных приходят(bacdefz), но в базу никак не попадут...

Спустя 31 минута, 50 секунд (13.06.2011 - 12:55) Invis1ble написал(а):
Kumirska
В запросе не хватает скобки закрывающей:
  $result = mysql_query("
INSERT
INTO `otdel` (`title`,`meta_d`,`meta_k`,`name`,`description`,`text`,`logo`)
VALUES (
'"
.safesql($_POST['title'])."',
'"
.safesql($_POST['meta_d'])."',
'"
.safesql($_POST['meta_k'])."',
'"
.safesql($_POST['name'])."',
'"
.safesql($_POST['description'])."',
'"
.safesql($_POST['text'])."',
'"
.safesql($_POST['logo'])."'
)"
) or die(mysql_error());

Форматируй код по-человечески, отступы делай пробелами, а не табуляцией, тогда ошибки выявить на порядок легче.
Вот несколько форумчан уже просмотрело твой код, и никто не заметил ошибку из-за вырвиглазного форматирования.

Спустя 9 минут, 58 секунд (13.06.2011 - 13:05) Kumirska написал(а):
Invis1ble спасибо за совет!
ошибку исправил,у меня первым параметром идет столбец id, а так как у него стоит
автоинкремент я указывал сразу поле name, судя по всему запрос пытался вписать поле нэйм
в поле айди,и вылетала ошибка,так как там int. В общем поставил первым параметром
NULL,остальные расставил по порядку следования в таблице, добавил название поля id
которому как раз и присваивается NULL и все заработало! спасибо большое Всем!

Спустя 7 минут, 45 секунд (13.06.2011 - 13:13) Invis1ble написал(а):
Дело не в id, а в синтаксической ошибке с отсутствующей скобкой. Если id автоинкрементное, значение для него не нужно указывать


_____________
никому не дано знать абсолютной истины, ибо понятия, которыми мы оперируем, сами по себе относительны
Быстрый ответ:

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