За последние 24 часа нас посетили 194469 программистов и 2009 роботов. Сейчас ищут 2010 программистов ...

Как объяснить такое поведение?

Тема в разделе "PHP для новичков", создана пользователем mark2010, 24 дек 2010.

  1. mark2010

    mark2010 Активный пользователь

    С нами с:
    18 авг 2010
    Сообщения:
    80
    Симпатии:
    0
    Вот запрос:
    PHP:
    1. $query = 'INSERT INTO pages (page_title, page_description, page_keywords, page_header, page_footer, page_content) VALUES ("'.$page_title.'", "'.$page_descr.'", "'.$page_keywords.'", "'.$page_header.'", "'.$page_footer.'", "'.$page_content.'")';
    2.  
    Следующий код:
    PHP:
    1.  
    2. echo $query;
    3. die();
    4.  
    возвращает в принципе то, что нужно - значения переменных в запросе

    Хорошо. Идём дальше:

    PHP:
    1.  
    2. mysql_query($query);
    3.  
    В результате выполнения вышеуказанного отрывка кода в базу вставляется строка, содержащая $page_header, $page_content, $page_footer, но не содержащая $page_title, $page_descr, $page_keywords...

    Для справки: хедер, контент и футер содержат html-разметку. титл, ключевые слова и описание состоят из нескольких слов...
     
  2. mark2010

    mark2010 Активный пользователь

    С нами с:
    18 авг 2010
    Сообщения:
    80
    Симпатии:
    0
    Может сервак таким образом моск ебать?
     
  3. tommyangelo

    tommyangelo Старожил

    С нами с:
    6 дек 2009
    Сообщения:
    2.549
    Симпатии:
    0
    Адрес:
    Мариуполь
    кавычки местами помеяй - весь запрос пусть будет в двойных, а внутри запроса - одинарные
     
  4. mark2010

    mark2010 Активный пользователь

    С нами с:
    18 авг 2010
    Сообщения:
    80
    Симпатии:
    0
    Да менял уже.... я их уже зае@#лся менять.............. хоть как не прокатывает...
     
  5. runner

    runner Активный пользователь

    С нами с:
    16 апр 2010
    Сообщения:
    343
    Симпатии:
    1
    Адрес:
    Ташкент
    может делать так
    PHP:
    1.  
    2. $query = "INSERT INTO pages (page_title, page_description, page_keywords, page_header, page_footer, page_content) VALUES ('$page_title', '$page_descr', '$page_keywords', '$page_header', '$page_footer', '$page_content')";
    3.  
     
  6. mark2010

    mark2010 Активный пользователь

    С нами с:
    18 авг 2010
    Сообщения:
    80
    Симпатии:
    0
    Щас попробую

    Вот так:
    PHP:
    1.  
    2. $query = "INSERT INTO pages (page_title, page_description, page_keywords, page_header, page_footer, page_content) VALUES ('".$page_title."', '".$page_descr."', '".$page_keywords."', '".$page_header."', '".$page_footer."', '".$page_content."')";
    3. //die($query);
    4.  
    5.  
    6. $db->query($query);
    7. $error = mysql_error();
    8.  
    не прокатывает
     
  7. tommyangelo

    tommyangelo Старожил

    С нами с:
    6 дек 2009
    Сообщения:
    2.549
    Симпатии:
    0
    Адрес:
    Мариуполь
    тогда копай в сторону своих функций для работы с базой. Косяк где-то там.
     
  8. mark2010

    mark2010 Активный пользователь

    С нами с:
    18 авг 2010
    Сообщения:
    80
    Симпатии:
    0
    runner
    Так тоже не прокатывает. Я не понимаю, почему вторая часть записывается в базу нормально???
     
  9. Gromo

    Gromo Активный пользователь

    С нами с:
    24 май 2010
    Сообщения:
    2.786
    Симпатии:
    2
    Адрес:
    Ташкент
    PHP:
    1.  
    2. <?php
    3. $query = "INSERT INTO pages (page_title, page_description, page_keywords, page_header, page_footer, page_content) VALUES ('{$page_title}', '{$page_descr}', '{$page_keywords}', '{$page_header}', '{$page_footer}', '{$page_content}')";
    4. echo $query;
    5. mysql_query($query);
    6.  
    если не вставится - вывод сюда пожалуйста.

    ах, да, так, на всякий случай - не забывай делать экранирование кавычек во всех своих переменных $page_xxx с помощью add_slashes или mysql_real_escape_string
     
  10. mark2010

    mark2010 Активный пользователь

    С нами с:
    18 авг 2010
    Сообщения:
    80
    Симпатии:
    0
    tommyangelo
    Я от функций отказался! обыкновенная mysql_query чем тебя не устроила? Серваку пох.. что я делаю, по-любому не получается...
     
  11. mark2010

    mark2010 Активный пользователь

    С нами с:
    18 авг 2010
    Сообщения:
    80
    Симпатии:
    0
    Gromo
    Ни х..я.... а что вывод? Нормально вид запроса:

     
  12. mark2010

    mark2010 Активный пользователь

    С нами с:
    18 авг 2010
    Сообщения:
    80
    Симпатии:
    0
    Мне уже самому интересно в чём здесь причина :)
     
  13. runner

    runner Активный пользователь

    С нами с:
    16 апр 2010
    Сообщения:
    343
    Симпатии:
    1
    Адрес:
    Ташкент
    mark2010
    можещь привести
    1) структуру таблицы pages
    2) значения переменных $page_title,$page_descr, $page_keywords, $page_header,$page_footer, $page_content?
     
  14. mark2010

    mark2010 Активный пользователь

    С нами с:
    18 авг 2010
    Сообщения:
    80
    Симпатии:
    0
    Структура таблицы pages:
    [SQL]
    CREATE TABLE pages (
    page_id int unsigned not null auto_increment primary key,
    page_title varchar(40) character set utf8 not null,
    page_description varchar(200) character set utf8 not null,
    page_keywords varchar(200) character set utf8 not null,
    page_content text character set utf8 not null
    );
    [/SQL]

    Значения переменных я сам забиваю но, как правило, они состоят из нескольких слов. К примеру:
    Заголовок страницы
    Описание страницы
    Ключевое слово, ещё, слово, ключевые слова

    хедер, футер и контент - целиком разметка html.
     
  15. mark2010

    mark2010 Активный пользователь

    С нами с:
    18 авг 2010
    Сообщения:
    80
    Симпатии:
    0
    Точнее не так... вот:

    [sql]
    -- phpMyAdmin SQL Dump
    -- version 3.2.3
    -- http://www.phpmyadmin.net
    --
    -- Host: localhost
    -- Generation Time: Dec 24, 2010 at 11:54 AM
    -- Server version: 5.1.40
    -- PHP Version: 5.3.3

    SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";

    --
    -- Database: `smart_cms`
    --

    -- --------------------------------------------------------

    --
    -- Table structure for table `pages`
    --

    CREATE TABLE IF NOT EXISTS `pages` (
    `page_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
    `page_title` varchar(40) NOT NULL,
    `page_description` varchar(200) NOT NULL,
    `page_keywords` varchar(200) NOT NULL,
    `page_header` text NOT NULL,
    `page_footer` text NOT NULL,
    `page_content` text NOT NULL,
    PRIMARY KEY (`page_id`)
    ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=67 ;
    [/sql]
     
  16. runner

    runner Активный пользователь

    С нами с:
    16 апр 2010
    Сообщения:
    343
    Симпатии:
    1
    Адрес:
    Ташкент
    ну и где у тебя поля page_header, page_footer
     
  17. mark2010

    mark2010 Активный пользователь

    С нами с:
    18 авг 2010
    Сообщения:
    80
    Симпатии:
    0
    runner
    Я поправил пост
     
  18. runner

    runner Активный пользователь

    С нами с:
    16 апр 2010
    Сообщения:
    343
    Симпатии:
    1
    Адрес:
    Ташкент
    я бы сделал так- вывел бы запрос на экран, скопировал и выполнил бы его в phpMyAdmin
     
  19. jei

    jei Активный пользователь

    С нами с:
    11 июн 2009
    Сообщения:
    542
    Симпатии:
    0
    Опиши всю задачу изначально может ты не правильно запрос строишь?
     
  20. mark2010

    mark2010 Активный пользователь

    С нами с:
    18 авг 2010
    Сообщения:
    80
    Симпатии:
    0
    runner
    Это в тестовых целях?
     
  21. mark2010

    mark2010 Активный пользователь

    С нами с:
    18 авг 2010
    Сообщения:
    80
    Симпатии:
    0
    Люди, я докопался.... и надо ж было столько трахаться для того, чтобы.... всего-то изменить кодировку таблицы и столбцов.... была utf8 стала родная кириллица. Только я тогда не понимаю, почему в utf8 часть записывалась а часть нет... может iconv() помог бы?...