За последние 24 часа нас посетили 17218 программистов и 1693 робота. Сейчас ищут 1030 программистов ...

проблема с mysql

Тема в разделе "PHP для новичков", создана пользователем gelius, 19 окт 2013.

  1. gelius

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

    С нами с:
    17 окт 2013
    Сообщения:
    29
    Симпатии:
    0
    Нужно заносить в бд домен и время посещения. Домен будет браться через $_SERVER['HTTP_REFERER'];.
    Тестирую запись в mysql.
    Создал бд:
    CREATE TABLE domains (domain text NOT NULL, time datetime NOT NULL);
    Скрипт:
    Код (Text):
    1. <?php
    2. header('Content-Type: text/html; charset=UTF-8');
    3.  
    4. $referrer = "domain.com";
    5.  
    6. // Соединяемся, выбираем базу данных
    7. $link = mysql_connect('localhost', 'test_db', 'pass')
    8.     or die('Не удалось соединиться: ' . mysql_error());
    9. echo 'Соединение успешно установлено';
    10. mysql_select_db('test_db') or die('Не удалось выбрать базу данных');
    11.  
    12. $dt = time();
    13.  
    14. // Выполняем SQL-запрос
    15. $query = 'INSERT INTO domains SET domain=$referrer, time=$dt';
    16.  
    17. // Закрываем соединение
    18. mysql_close($link);
    19.  
    20. ?>
    Ошибок не выдает, но бд пустая.
     
  2. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.131
    Симпатии:
    1.251
    Адрес:
    там-сям
    1. у тебя в тексте нет вызова mysql_query($query). то есть ты даже не пытаешся выполнить запрос INSERT.
    2. все равно бы не сработало - твоя строка $query неправильная. строки в одинарных кавычках НЕ вставляют в себя содержимое переменных.

    скачай с php.net документацию в формате CHM, там есть раздел "Основы языка", там про строки всё четко расписано.
     
  3. gelius

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

    С нами с:
    17 окт 2013
    Сообщения:
    29
    Симпатии:
    0
    Подправил:
    Код (Text):
    1. <?php
    2. header('Content-Type: text/html; charset=UTF-8');
    3.  
    4. $referrer = "domain.com";
    5.  
    6. // Соединяемся, выбираем базу данных
    7. $link = mysql_connect('localhost', 'test_db', 'pass')
    8.     or die('Не удалось соединиться: ' . mysql_error());
    9. echo 'Соединение успешно установлено';
    10. mysql_select_db('test_db') or die('Не удалось выбрать базу данных');
    11.  
    12. $dt = time();
    13.  
    14. // Выполняем SQL-запрос
    15. $sql = 'INSERT INTO domains(domain, time)
    16. VALUES("'.$referrer.'", "'.$dt.'")';
    17.  
    18. if(!mysql_query($sql))
    19. {echo '<center><p><b>Ошибка при добавлении данных!</b></p></center>';}
    20. else
    21. {echo '<center><p><b>Данные успешно добавлены!</b></p></center>';}
    22.  
    23. // Закрываем соединение
    24. mysql_close($link);
    25.  
    26. ?>
    Но в time пишет 0000-00-00 00:00:00
     
  4. Slavka

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

    С нами с:
    1 окт 2013
    Сообщения:
    722
    Симпатии:
    41
    $dt = time(); //фтопку

    // Выполняем SQL-запрос
    $sql = 'INSERT INTO domains(domain, time)
    VALUES("'.$referrer.'", now())';