За последние 24 часа нас посетили 15518 программистов и 1599 роботов. Сейчас ищут 858 программистов ...

INSERT INTO...

Тема в разделе "PHP и базы данных", создана пользователем B_Yurchenko, 25 мар 2011.

  1. B_Yurchenko

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

    С нами с:
    16 фев 2011
    Сообщения:
    28
    Симпатии:
    0
    pg_query($dbb,"INSERT INTO recipients ('sessionuid', 'commission', 'recipientcode', 'optional', 'minamount',
    'maxamount', 'receiverfullname', 'receivercountry', 'receivercity', 'supportedcurrency', 'status')
    VALUES ('$sessiya', '$comissiya', '$recepcod', '$option', '$minamount', '$maxamount', '$polnimya',
    '$strana', '$gorod', '$bablo', '$status')");

    Подскажите, пожалуйста, где ошибка?
    Идентификатор подключения к базе получаю!
    Имена колонок вписаны без ошибок, последовательно.
    Может быть кодировка или синтаксис?
     
  2. Gromo

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

    С нами с:
    24 май 2010
    Сообщения:
    2.786
    Симпатии:
    2
    Адрес:
    Ташкент
    названия полей должны быть в двойных кавычках

    INSERT INTO recipients ("sessionuid", "commission", "recipientcode", "optional",
     
  3. B_Yurchenko

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

    С нами с:
    16 фев 2011
    Сообщения:
    28
    Симпатии:
    0
    Пробую так... Результата нет.

    pg_query($dbb,'INSERT INTO recipients ("sessionuid", "commission", "recipientcode", "optional", "minamount",
    "maxamount", "receiverfullname", "receivercountry", "receivercity", "supportedcurrency", "status")
    VALUES ("f", "f", "f", "f", "f", "f", "f", "f", "f", "f", "f")');
     
  4. B_Yurchenko

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

    С нами с:
    16 фев 2011
    Сообщения:
    28
    Симпатии:
    0
    Кодировка данных у мя windows-1251. Может дело в этом?
     
  5. Gromo

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

    С нами с:
    24 май 2010
    Сообщения:
    2.786
    Симпатии:
    2
    Адрес:
    Ташкент
    B_Yurchenko
    названия полей должны быть в двойных кавычках, а данные - в одинарных!
     
  6. Апельсин

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

    С нами с:
    20 мар 2010
    Сообщения:
    3.645
    Симпатии:
    2
    кхе-кхе... это кто тебя так нагло обманул? :)
    мне бабка-шептуха рассказала, что названия полей в обратных кавычках (`), а данные - в зависимости от того, в каких кавычках весь запрос - или ", или '.
     
  7. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    вас обоих обманули.
     
  8. Апельсин

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

    С нами с:
    20 мар 2010
    Сообщения:
    3.645
    Симпатии:
    2
    Это ты про Popov coding style? ))
     
  9. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    это про то что кавычки не всегда обязательны вобще =) тем более при указании полей.
     
  10. Апельсин

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

    С нами с:
    20 мар 2010
    Сообщения:
    3.645
    Симпатии:
    2
    Вот это и называется Popov coding style))
     
  11. Gromo

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

    С нами с:
    24 май 2010
    Сообщения:
    2.786
    Симпатии:
    2
    Адрес:
    Ташкент
    это в мускуле, а тут постгрес
     
  12. Апельсин

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

    С нами с:
    20 мар 2010
    Сообщения:
    3.645
    Симпатии:
    2
    ну лад. Но я с igordata дофлудим до нормы всетаки :D
     
  13. runner

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

    С нами с:
    16 апр 2010
    Сообщения:
    343
    Симпатии:
    1
    Адрес:
    Ташкент
    1) названия полей не нужно заключать в кавычки
    2) нужно проверить что за ошибка при вставке
    PHP:
    1.  
    2. $result=pg_query($dbb,"INSERT INTO recipients (sessionuid, commission, recipientcode, optional, minamount,
    3. maxamount, receiverfullname,receivercountry, receivercity,supportedcurrency, status)
    4. VALUES ('$sessiya', '$comissiya', '$recepcod', '$option', '$minamount', '$maxamount', '$polnimya',
    5. '$strana', '$gorod', '$bablo', '$status')");
    6. if($result==false)
    7. {
    8.     echo  pg_result_error ( $dbb);
    9. }
    10.  
    3) приведи структуру таблицы
     
  14. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Оп! Новенькая аватарочка! =) грац тя, чо.

    что это постгресс я не углядел
     
  15. B_Yurchenko

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

    С нами с:
    16 фев 2011
    Сообщения:
    28
    Симпатии:
    0
    Ребята, не заносятся в таблицу данные так, как вы предлагаете. Причем, pg_result_error ( $dbb) возвращает идентификатор соединения с базой... А данных все равно нет.
    Только при таком раскладе в таблицу заносятся не значения, а названия переменных ($sessiya, $comissiya и т.д.)
    $result=pg_query($dbb,'INSERT INTO recipients ("sessionuid", "commission", "recipientcode", "optional", "minamount",
    "maxamount", "receiverfullname", "receivercountry", "receivercity", "supportedcurrency", "status")
    VALUES (\'$sessiya\', \'$comissiya\', \'$recepcod\', \'$option\', \'$minamount\', \'$maxamount\', \'$polnimya\',
    \'$strana\', \'$gorod\', \'$bablo\', \'$status\')');
    Как еще можно что сделать?
    Спасибо всем, кто помогает!!!!!!!!!!!!!!!!!!!!!!!!!!!!
     
  16. Gromo

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

    С нами с:
    24 май 2010
    Сообщения:
    2.786
    Симпатии:
    2
    Адрес:
    Ташкент
    B_Yurchenko
    o_O. Блин, так и хочется потроллить и пообзываться... Но... вот оно решение (хоть и небезопасное):

    PHP:
    1. <?php
    2. $result=pg_query($dbb, 'INSERT INTO recipients ("sessionuid", "commission", "recipientcode", "optional", "minamount",
    3. "maxamount", "receiverfullname", "receivercountry", "receivercity", "supportedcurrency", "status")
    4. VALUES '."('$sessiya', '$comissiya', '$recepcod', '$option', '$minamount', '$maxamount', '$polnimya',
    5. '$strana', '$gorod', '$bablo', '$status')");
    для удобства могу посоветовать класс для работы с базой данных PostgreSQL,
    точно такой же какой описан для MySQL тут http://www.php.ru/forum/viewtopic.php?t=31744
     
  17. admyx

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

    С нами с:
    14 мар 2008
    Сообщения:
    2.159
    Симпатии:
    1
    Пример PHP
    PHP:
    1. <?php
    2. $sql = 'INSERT INTO table (int_column, string_column, double_precision_column)
    3.           VALUES ('.$int.', \''.$string.'\', '.(float)$int.')';
    Пример SQL
    [sql]INSERT INTO table("int_column", "string_column", "double_precision_column")
    VALUES (111, 'str', 1.3)[/sql]

    И то и то работает
     
  18. B_Yurchenko

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

    С нами с:
    16 фев 2011
    Сообщения:
    28
    Симпатии:
    0
    Ребята, вы можете смеяться, говорить, что у меня ошибка не в коде, а в ДНК, но данные в таблицу не заносятся....(((((
    Может быть создать таблицу, где имена столбцов уже будут содержать ""?
     
  19. B_Yurchenko

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

    С нами с:
    16 фев 2011
    Сообщения:
    28
    Симпатии:
    0
    Реально не получается...

    $result = '($dbb,\'INSERT INTO recipients ("sessionuid", "commission", "recipientcode", "optional", "minamount",
    "maxamount", "receiverfullname", "receivercountry", "receivercity", "supportedcurrency", "status")';
    $poluchilos = $result." VALUES ('$sessiya', '$comissiya', '$recepcod', '$option', '$minamount', '$maxamount', '$polnimya', '$strana', '$gorod', '$bablo', '$status')\');" ;
    $dokvo = pg_query ($poluchilos);
     
  20. Gromo

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

    С нами с:
    24 май 2010
    Сообщения:
    2.786
    Симпатии:
    2
    Адрес:
    Ташкент
    B_Yurchenko
    у тебя данные не экранируются, потому в запросе ошибка вылазит, которую ты поймать не можешь.
    скорее всего в одном из полей есть одинарная кавычка.



    PHP:
    1. <?php
    2. $sessiya = addslashes($sessiya);
    3. $comissiya  = addslashes($comissiya);
    4. $recepcod = addslashes($recepcod);
    5. $option = addslashes($option);
    6. $minamount = addslashes($minamount);
    7. $maxamount = addslashes($maxamount);
    8. $polnimya = addslashes($polnimya);
    9. $strana = addslashes($strana);
    10. $gorod = addslashes($gorod);
    11. $bablo = addslashes($bablo);
    12. $status = addslashes($status);
    13.  
    14. $result=pg_query($dbb, 'INSERT INTO recipients ("sessionuid", "commission", "recipientcode", "optional", "minamount", "maxamount", "receiverfullname", "receivercountry", "receivercity", "supportedcurrency", "status") VALUES '."('$sessiya', '$comissiya', '$recepcod', '$option', '$minamount', '$maxamount', '$polnimya',  '$strana', '$gorod', '$bablo', '$status')");
    15.  
     
  21. B_Yurchenko

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

    С нами с:
    16 фев 2011
    Сообщения:
    28
    Симпатии:
    0
    Правильнее так, но тоже нет((((

    $result = '($dbb,\'INSERT INTO recipients ("sessionuid", "commission", "recipientcode", "optional", "minamount",
    "maxamount", "receiverfullname", "receivercountry", "receivercity", "supportedcurrency", "status")';
    $poluchilos = $result." VALUES ('$sessiya', '$comissiya', '$recepcod', '$option', '$minamount', '$maxamount', '$polnimya', '$strana', '$gorod', '$bablo', '$status')')";
    $dokvo = pg_query ($poluchilos);
     
  22. B_Yurchenko

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

    С нами с:
    16 фев 2011
    Сообщения:
    28
    Симпатии:
    0
    Gromo

    Не получается и так, как Вы советуете(((( Я думаю, может быть все дело в том, что я данные заносить пытаюсь в win-1251?
     
  23. Gromo

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

    С нами с:
    24 май 2010
    Сообщения:
    2.786
    Симпатии:
    2
    Адрес:
    Ташкент
    B_Yurchenko
    это хостинг или локалхост ? могу глянуть, если хостинг и есть доступ к фтп
     
  24. B_Yurchenko

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

    С нами с:
    16 фев 2011
    Сообщения:
    28
    Симпатии:
    0
    Это сервак банковский(((
     
  25. Gromo

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

    С нами с:
    24 май 2010
    Сообщения:
    2.786
    Симпатии:
    2
    Адрес:
    Ташкент
    B_Yurchenko


    PHP:
    1. <?php
    2. $sessiya = pg_escape_string($sessiya);
    3. $comissiya  = pg_escape_string($comissiya);
    4. $recepcod = pg_escape_string($recepcod);
    5. $option = pg_escape_string($option);
    6. $minamount = pg_escape_string($minamount);
    7. $maxamount = pg_escape_string($maxamount);
    8. $polnimya = pg_escape_string($polnimya);
    9. $strana = pg_escape_string($strana);
    10. $gorod = pg_escape_string($gorod);
    11. $bablo = pg_escape_string($bablo);
    12. $status = pg_escape_string($status);
    13.  
    14. $query = 'INSERT INTO recipients ("sessionuid", "commission", "recipientcode", "optional", "minamount", "maxamount", "receiverfullname", "receivercountry", "receivercity", "supportedcurrency", "status") VALUES '."('$sessiya', '$comissiya', '$recepcod', '$option', '$minamount', '$maxamount', '$polnimya',  '$strana', '$gorod', '$bablo', '$status')";
    15.  
    16. echo $query; exit();
    17.  
    18. $result=pg_query($dbb, $query);
    19. ?>
    и то, что выйдет - в студию