За последние 24 часа нас посетили 52978 программистов и 1764 робота. Сейчас ищут 1247 программистов ...

Как выполнить mySQL запрос?

Тема в разделе "PHP для новичков", создана пользователем Roomlife, 7 мар 2011.

  1. Roomlife

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

    С нами с:
    6 авг 2010
    Сообщения:
    34
    Симпатии:
    0
    Создавал таблицу вида
    [sql]CREATE TABLE cms_lottery (
    id integer PRIMARY KEY,
    user_id varchar(50),
    nomera varchar(18),
    nomera_win varchar(18),
    Data date NOT NULL default '00-00-0000',
    phone varchar (45));
    [/sql]
    Далее id это порядковый номер записи.
    Далее запрос:
    [sql]$sql = "INSERT cms_lottery (id, user_id, nomera, data, phone)
    VALUES ('$user_id', '$nomera', '$data', '$phone')";[/sql]
    Вопрос №1:
    При добавлении новой строки в таблицу, будет ли автоматически записываться порядковый номер (id) записи? Если нет, то как это реализовать?
    Вопрос №2:
    Правильно ли составлен запрос?
    или надо так:
    [sql]$sql = "INSERT cms_lottery (id, user_id, nomera, data, phone)
    VALUES ('.$user_id.', '.$nomera.', '.$data.', '.$phone.')";[/sql]
     
  2. sobachnik

    sobachnik Старожил

    С нами с:
    20 апр 2007
    Сообщения:
    3.380
    Симпатии:
    13
    Адрес:
    Дмитров, МО
    Не правильно, id первое убрать надо.

    PHP:
    1. <?php
    2. $sql = "INSERT INTO `cms_lottery` (`user_id`, `nomera`, `data`, `phone`) VALUES ('$user_id', '$nomera', '$data', '$phone')";
     
  3. Roomlife

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

    С нами с:
    6 авг 2010
    Сообщения:
    34
    Симпатии:
    0
    а в базу прописывать
    id integer PRIMARY KEY,
    или
    id int(11) NOT NULL auto_increment

    или без разницы?
     
  4. sobachnik

    sobachnik Старожил

    С нами с:
    20 апр 2007
    Сообщения:
    3.380
    Симпатии:
    13
    Адрес:
    Дмитров, МО
    AUTO_INCREMENT и PRIMARY KEY должно присутствовать

    Например,
    `id`INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY
     
  5. Roomlife

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

    С нами с:
    6 авг 2010
    Сообщения:
    34
    Симпатии:
    0
    PHP:
    1. <?php
    2. $nomer="55";
    3. $nomer2="99";
    4. $dbuser = "555";
    5. $dbpasswd = "111";
    6. $dbname="666";
    7.  
    8. $conn = mysql_connect ("localhost", $dbuser, $dbpasswd);
    9. $sql = 'INSERT INTO 'cms_lottery' ('nom') VALUES ('666');';
    10.  
    11. ?>
    даже так, выдает ошибку запроса. Если запрос как-то изменить, всеравно таблицы не добавляются((
     
  6. iliavlad

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

    С нами с:
    24 янв 2009
    Сообщения:
    1.689
    Симпатии:
    4
    в вашей таблице нет столбца nom. названия столбцов и таблиц обрамляют `. а не '
     
  7. sobachnik

    sobachnik Старожил

    С нами с:
    20 апр 2007
    Сообщения:
    3.380
    Симпатии:
    13
    Адрес:
    Дмитров, МО
    После подключения необходимо выбрать б.д., с которой будешь работать (строка 3)
    После создания sql запроса его надо также отправить (строка 5) :)))
    PHP:
    1. <?php
    2. $conn = mysql_connect('localhost', $dbuser, $dbpasswd);
    3. mysql_select_db($dbname, $conn) or exit(mysql_error());
    4. $sql = "INSERT INTO `cms_lottery` (`user_id`, `nomera`, `data`, `phone`) VALUES ('$user_id', '$nomera', '$data', '$phone')";
    5. mysql_query($sql, $conn) or exit($sql . '<br />' . mysql_error());
    Обрати внимания на используемые кавычки.
    Имена баз данных, таблиц и столбцов в таблице окружают косыми кавычками - это те, что на букве ё при английской раскладке.