|
|
|
| Приветствую!
Не могу разглядеть у себя ошибку - может кто-то из сообщества с лучшим зрением ткнет меня носом?
Суть такова: есть некая форма из которой POST'ом передается ряд значений такому вот скрипту:
$sql='UPDATE `cat_news` SET `news_date`="'.$temp_date.'", `additional_info`="'.addslashes($_POST['preambula']).'", `additional_info`="'.addslashes($_POST['news_body']).'" WHERE `id`='.$_GET['id'];
$db->update_sql($sql);
|
Как видно, этот скрипт дергает метод класса $db для выполнения запроса. Вот код этого метода:
function update_sql($sql) {
$this->last_query = $sql;
$r = mysql_query($sql);
if (!$r) {
$this->last_error = mysql_error();
return false;
}
$rows = mysql_affected_rows();
if ($rows == 0) return true;
else return $rows;
}
|
То есть совсем ничего хитрого. Но тем не менее при исполнении такого запроса - в строке в таблице, опреленной $_GET['id'], все значения сбрасываються в пустые. Причем если я сделаю вывод текста запроса на екран, а потом Ctrl+C/Ctrl+V в любой MySQL менеджер, то запрос отрабатывает как надо. Если я ставлю в $sql произвольный запрос без переменных (например, "UPDATE cat_news SET preambula = 'abcdef' WHERE id = 5") - он тоже срабатывает. Проверил нужные значения в массивах $_POST и $_GET - все на месте...
На всякий случай структура искомой таблицы:
CREATE TABLE `cat_news` (
`id` bigint(20) unsigned NOT NULL auto_increment,
`news_date` date NOT NULL,
`preambula` varchar(1000) NOT NULL,
`news_body` varchar(4000) default NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8
|
Заранее благодарен за ответы. | |
|
|
|
|
|
|
|
для: Axion
(03.05.2009 в 13:02)
| | > $sql='UPDATE `cat_news` SET `news_date`="'.$temp_date.'", `additional_info`="'.addslashes($_POST['preambula']).'", `additional_info`="'.addslashes($_POST['news_body']).'" WHERE `id`='.$_GET['id'];
$db->update_sql($sql);
>Причем если я сделаю вывод текста запроса на екран, а потом Ctrl+C/Ctrl+V в любой MySQL менеджер, то запрос отрабатывает как надо.
>CREATE TABLE `cat_news` (
>`id` bigint(20) unsigned NOT NULL auto_increment,
>`news_date` date NOT NULL,
>`preambula` varchar(1000) NOT NULL,
>`news_body` varchar(4000) default NULL,
>PRIMARY KEY (`id`)
>) ENGINE=MyISAM DEFAULT CHARSET=utf8
news_date по идее должно заполнить.
А второго заполняемого поля ( которое в запросе перечислено почему-то дважды) у Вас в структуре таблицы нет.
Насчет того, что Вы копируете именно этот запрос - чушь. | |
|
|
|