Полета не се записват в базата?

borislav123

New member
Здравейте
много глупав казус , но ...

към работеща наша система добавям нови полета и променливите въведени в тях не ми се записват в базата.

всичко друго се записва, но написаното в тези полета не се записва

и не получавам грешка

ето ги

Title:
Description:
Keywords:

`titleto` text NOT NULL,
`desco` text NOT NULL,
`keys` text NOT NULL,

правих в една заявка - не работи

сега разбих в две - пак така

Код:
$res=mysql_query("update pict set ime=\"$name\", opis=\"$opis\", cat=\"$cat\"     where id='$id'");
        
$res2=mysql_query("update pict set titleto=\"$titleto\" , desco=\"$desco\" , keys=\"$keys\"     where id='$id'");

първата работи, а втората не

ако новите променливи сложа в първата - и тя спира да работи

P.S. не виждам никаква логика, и не разбирам от кое може да е проблема. Тази система съм я променял по подобен начин много пъти...

Има и текст едитор ckeditor, но на други мои сайтове и с него си работи перфектно

PPS. От хоста казват, че не би трябвало да е от сървъра, тествах с Хром, ИЕ и ФФ и все така.
 
Последно редактирано:
Re: Полета не се записват в базата?

Инициализирани ли са ти променливата от втората заявка - да не би да са null и да се чупи израза?

Пробвай вместо $res2=mysql_query("update pict set titleto=\"$titleto\" , desco=\"$desco\" , keys=\"$keys\" where id='$id'"); да ги хардкоднеш (само за тест) - примерно

$res2=mysql_query("update pict set titleto='test title' , desco='test desc' , keys='test key' where id='$id'");
 
Re: Полета не се записват в базата?

пробвах по твоя начин и не записва

пробвах и

echo "update pict set titleto=\"$titleto\" , desco=\"$desco\" , keys=\"$keys\" where id='$id'";

вади ми в ехо-то каквото съм въвел, но не го записва....
 
Re: Полета не се записват в базата?

някакъв error-log ? или не е наличен?
 
Re: Полета не се записват в базата?

UPDATE `xxxx`.`pict` SET `titleto` = 'hg f',
`desco` = 'hgf',
`keys` = 'hgf',
`comenta` = 'hgf' WHERE `pict`.`id` =5;

да пробвам с тези кавички?

P.S. и с тях пак така .....
 
Последно редактирано:
Re: Полета не се записват в базата?

някакъв error-log ? или не е наличен?

не

шаред хостинг е , но е доста добър
много съм доволен , от години работя с тях, имам немалко сайтове при тях

писах им, проверяваха, казаха че не би трябвало да е сървърно
 
Re: Полета не се записват в базата?

Здравейте
много глупав казус , но ...

към работеща наша система добавям нови полета и променливите въведени в тях не ми се записват в базата.

всичко друго се записва, но написаното в тези полета не се записва

и не получавам грешка

ето ги

Title:
Description:
Keywords:

`titleto` text NOT NULL,
`desco` text NOT NULL,
`keys` text NOT NULL,

правих в една заявка - не работи

сега разбих в две - пак така

Код:
$res=mysql_query("update pict set ime=\"$name\", opis=\"$opis\", cat=\"$cat\"     where id='$id'");
        
$res2=mysql_query("update pict set titleto=\"$titleto\" , desco=\"$desco\" , keys=\"$keys\"     where id='$id'");

първата работи, а втората не

ако новите променливи сложа в първата - и тя спира да работи

P.S. не виждам никаква логика, и не разбирам от кое може да е проблема. Тази система съм я променял по подобен начин много пъти...

Има и текст едитор ckeditor, но на други мои сайтове и с него си работи перфектно

PPS. От хоста казват, че не би трябвало да е от сървъра, тествах с Хром, ИЕ и ФФ и все така.

PHP:
        $res = "update `pict` set `ime`='$name', `opis`='$opis', `cat`='$cat' where id='$id'";
        mysql_query($res);
        $res2 = "update `pict` set `titleto`='$titleto', `desco`='$desco', `keys`='$keys'  where `id`='$id'";
        mysql_query($res2);
        echo"
        $res
        <br />
        $res2";

Ако не сработят пусни заявките в phpMyAdminа и ще видиш къде точно се дънят нещата.
 
Re: Полета не се записват в базата?

#1064 - 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 '\'aaaaa\' , desco=\'bbbbbbb\' , keys=\'$keys\' where id='4'' at line 1

какво означава това

с този синтаксис първата заявка работи ....?
 
Re: Полета не се записват в базата?

Стана! по този начин 🙂


$res2=mysql_query("update pict set `titleto`='$titleto' , `desco`='$desco' , `keys`='$keys' where id=$id ");

обаче първата зявка и с другите кавички работи, втората иска тези.....
 
Re: Полета не се записват в базата?

Ескейпваш ли променливите преди да ги вкараш в заявката? Според мен е от това. Да не говорим, че това е голям пропуск в сигурността.

Друг вариант е mysql потребителя да няма права за INSERT.
 
Re: Полета не се записват в базата?

strip_tags, trim, str_replace - чистя

има права
ако няма не би трябвало и първата заявка да записва
важното е че стана

май зависи от версията на My SQL - различни кавички иска, ако не се лъжа, но първата заявка записва и с другите кавички, странно.....
 
Re: Полета не се записват в базата?

PHP:
Може и така:
 $res = "update `pict` set `ime`='".mysql_real_escape_string($name)."', `opis`='".mysql_real_escape_string($opis)."', `cat`='".mysql_real_escape_string($cat)."' where id='".mysql_real_escape_string($id)."'"; 

Може и така:
$res = "update `pict` set `ime`='".addslashes(htmlspecialchars($name))."', `opis`='".addslashes(htmlspecialchars($opis))."', `cat`='".addslashes(htmlspecialchars($cat))."' where id='".addslashes(htmlspecialchars($id))."'";

А най добре е според мен де преди това променливите да ти минават всички през функция за проверка.

strip_tags(); няма да ти махне кавичките които, ако влезнат в заявката няма да я изпълни.
 
Re: Полета не се записват в базата?

най-вероятно не си ескейпнал текстовете в променливите и в тях има някой апостроф или кавичка, който ти чупи заявката, примерно...

п.с. опс, темата имала и втора страница и съм закъснял...
 

Back
Горе