За последние 24 часа нас посетили 17044 программиста и 1835 роботов. Сейчас ищут 1636 программистов ...

Не могу добавить данные в базу, ошибка.

Тема в разделе "PHP для новичков", создана пользователем Dark Smoke, 9 ноя 2012.

  1. Dark Smoke

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

    С нами с:
    17 авг 2008
    Сообщения:
    30
    Симпатии:
    0
    Адрес:
    Днепропетровск
    Не как не могу вставить данные в БД, выдает ошибку.
    Ошибка
    Код (Text):
    1.  
    2. echo $quert = "INSERT INTO $userstable (
    3.         `id` ,
    4.         `name` ,
    5.         `rub_buy` ,
    6.         `rub_sell` ,
    7.         `usd_buy` ,
    8.         `usd_sell` ,
    9.         `eur_buy` ,
    10.         `eur_sell`
    11.         )
    12.         VALUES (
    13.         NULL , '".$name."', '".$rub_buy."', '".$rub_sell."', '".$usd_buy."', '".$usd_sell."', '".$eur_buy."', '".$eur_sell."'
    14.         )";
    15.  
    16. mysql_query($query) or die(mysql_error());
    вот вывод запроса эхо запроса
    Код (Text):
    1.  
    2. INSERT INTO table ( `id` , `name` , `rub_buy` , `rub_sell` , `usd_buy` , `usd_sell` , `eur_buy` , `eur_sell` ) VALUES ( NULL , 'Приват Банк', '0.255', '0.265', '8.180', '8.220', '10.34', '10.64' )
    Код (Text):
    1. CREATE TABLE IF NOT EXISTS `table` (
    2.   `id` int(11) NOT NULL AUTO_INCREMENT,
    3.   `name` tinytext CHARACTER SET utf8 NOT NULL,
    4.   `rub_buy` float NOT NULL,
    5.   `rub_sell` float NOT NULL,
    6.   `usd_buy` float NOT NULL,
    7.   `usd_sell` float NOT NULL,
    8.   `eur_buy` float NOT NULL,
    9.   `eur_sell` float NOT NULL,
    10.   PRIMARY KEY (`id`)
    11. ) ENGINE=MyISAM  DEFAULT CHARSET=cp1251 AUTO_INCREMENT=2 ;
     
  2. VampiR_WAR

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

    С нами с:
    19 авг 2009
    Сообщения:
    409
    Симпатии:
    1
    Адрес:
    Нижний Новгород
    mysql_real_escape_string()
    iconv()

    mysql_query("SET NAMES 'utf8';");

    mysql_query("SET CHARACTER SET 'utf8';");

    mysql_query("SET SESSION collation_connection = 'utf8_general_ci';");


    Попробуй такие штуки)
     
  3. Dark Smoke

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

    С нами с:
    17 авг 2008
    Сообщения:
    30
    Симпатии:
    0
    Адрес:
    Днепропетровск
    НЕ дело не в кодировке
    Код (Text):
    1.  
    2. <?
    3. header("Content-Type: text/html; charset=UTF-8");
    4.  
    5. /* Приват Банк */
    6.  
    7. $file = file_get_contents('http://privatbank.ua/');
    8.  
    9. $pattern = "/<td\s.*>(.*)<\/td>/";
    10. preg_match_all($pattern, $file, $matches);
    11.  
    12. echo "<pre>";
    13. print_r($matches[0]);
    14. echo "</pre>";
    15.  
    16.  
    17. $name = 'Приват Банк';
    18.  
    19. $rub_buy    = $matches[0][7];
    20. $rub_sell   = $matches[0][8];
    21.  
    22. $usd_buy    = $matches[0][4];
    23. $usd_sell   = $matches[0][5];
    24.  
    25. $eur_buy    = $matches[0][1];
    26. $eur_sell   = $matches[0][2];
    27.  
    28. $hostname = "localhost";
    29. $username = "valuta";
    30. $password = "123456";
    31. $dbName = "valuta";
    32.  
    33. $userstable = "table";
    34.  
    35. @mysql_connect($hostname,$username,$password) OR DIE("Не могу создать соединение ");
    36. mysql_select_db($dbName) or die(mysql_error());  
    37.  
    38. echo $quert = "INSERT INTO $userstable (
    39.         `id` ,
    40.         `name` ,
    41.         `rub_buy` ,
    42.         `rub_sell` ,
    43.         `usd_buy` ,
    44.         `usd_sell` ,
    45.         `eur_buy` ,
    46.         `eur_sell`
    47.         )
    48.         VALUES (
    49.         NULL , '".$name."', '".$rub_buy."', '".$rub_sell."', '".$usd_buy."', '".$usd_sell."', '".$eur_buy."', '".$eur_sell."'
    50.         )";
    51.  
    52. mysql_query($query) or die(mysql_error());
    53. echo "Информация о вас занесена в базу данных.";
    54.  
    55. mysql_close();
    56.  
    57. ?>
    а выводит
     
  4. VampiR_WAR

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

    С нами с:
    19 авг 2009
    Сообщения:
    409
    Симпатии:
    1
    Адрес:
    Нижний Новгород
    NULL наверное тоже в кавычки?

    Добавлено спустя 1 минуту 19 секунд:
    для id передай пустое значение
     
  5. Dark Smoke

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

    С нами с:
    17 авг 2008
    Сообщения:
    30
    Симпатии:
    0
    Адрес:
    Днепропетровск
    Код (Text):
    1. $quert = "INSERT INTO $userstable (
    2.         `id` ,
    3.         `name` ,
    4.         `rub_buy` ,
    5.         `rub_sell` ,
    6.         `usd_buy` ,
    7.         `usd_sell` ,
    8.         `eur_buy` ,
    9.         `eur_sell`
    10.         )
    11.         VALUES (
    12.         '' , '".$name."', '".$rub_buy."', '".$rub_sell."', '".$usd_buy."', '".$usd_sell."', '".$eur_buy."', '".$eur_sell."'
    13.         )";
    ((((((((((((((((((( сил нет с ней бороться....
     
  6. YSandro

    YSandro Старожил

    С нами с:
    7 апр 2011
    Сообщения:
    2.523
    Симпатии:
    2
    Поле id не надо "вставлять", в нем автоинкримент. Пропустите это поле в запросе, не передавайте пустую строку.
    Не
    Код (Text):
    1. INSERT INTO table ( `id` , `name` , `rub_buy` ,
    а
    Код (Text):
    1. INSERT INTO table ( `name` , `rub_buy` ,
     
  7. VampiR_WAR

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

    С нами с:
    19 авг 2009
    Сообщения:
    409
    Симпатии:
    1
    Адрес:
    Нижний Новгород
    echo $quert = "INSERT INTO $userstable

    mysql_query($query) or die(mysql_error());
    Может это?

    Добавлено спустя 30 секунд:
    Пустую вредно передавать?
     
  8. YSandro

    YSandro Старожил

    С нами с:
    7 апр 2011
    Сообщения:
    2.523
    Симпатии:
    2
    кстати да, имя переменной не верно :)
    Вообще не за чем.
     
  9. VampiR_WAR

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

    С нами с:
    19 авг 2009
    Сообщения:
    409
    Симпатии:
    1
    Адрес:
    Нижний Новгород
    Мне как то проще ориентироваться когда все в запросе)
     
  10. runcore

    runcore Старожил

    С нами с:
    12 окт 2012
    Сообщения:
    3.625
    Симпатии:
    158
    передавать NULL вполне допустимо и работоспособно.
    ошибка точно не в этом.