Не могу понять sql запрос не вводит данные в базу?

MySQL/PostgreSQL/SQLite/Oracle/M$SQL/....

Модератор: terminus

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
bobot
ст. прапорщик
Сообщения: 589
Зарегистрирован: 2008-05-28 20:03:17

Не могу понять sql запрос не вводит данные в базу?

Непрочитанное сообщение bobot » 2009-06-10 14:16:26

Теперь ближе к делу: я сделал страничку регистрации для юзеров , в этом скрипте я сделал такой sql запрос

Код: Выделить всё

$r = @mysql_query("INSERT INTO users VALUES(NULL,'".strtolower($nick)."','".md5($pass)."','".$email."','".$uniq_id."',0,'".date("dmY")."','".date("dmY")."','".$user_id."')");
Он работает.

Теперь пытаюсь вот так сделать

Код: Выделить всё

$sql = "insert into users (nick, password) values ('".strtolower($nick)."','".md5($pass)."')";
не работает (ну не вводит значение в базу)
в скрипте извлекаются данные так:

Код: Выделить всё

$nick = $_POST['nick'];
$pass = $_POST['pass'];
так в чём же дело всё таки?
Последний раз редактировалось bobot 2009-06-10 14:20:21, всего редактировалось 1 раз.

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

paradox
проходил мимо
Сообщения: 11620
Зарегистрирован: 2008-02-21 18:15:41

Re: Не могу понять sql запрос не вводит данные в базу?

Непрочитанное сообщение paradox » 2009-06-10 14:20:01

echo $sql результирующий выведи для дебага
что бы понять что где и как не срабатывает

Аватара пользователя
bobot
ст. прапорщик
Сообщения: 589
Зарегистрирован: 2008-05-28 20:03:17

Re: Не могу понять sql запрос не вводит данные в базу?

Непрочитанное сообщение bobot » 2009-06-10 14:23:25

paradox писал(а):echo $sql результирующий выведи для дебага
что бы понять что где и как не срабатывает
как его выводить прямо в скрипте просто не знаю?

paradox
проходил мимо
Сообщения: 11620
Зарегистрирован: 2008-02-21 18:15:41

Re: Не могу понять sql запрос не вводит данные в базу?

Непрочитанное сообщение paradox » 2009-06-10 14:24:48

прям таки выводи

Аватара пользователя
bobot
ст. прапорщик
Сообщения: 589
Зарегистрирован: 2008-05-28 20:03:17

Re: Не могу понять sql запрос не вводит данные в базу?

Непрочитанное сообщение bobot » 2009-06-10 14:35:30

paradox писал(а):прям таки выводи
так где именно тут

Код: Выделить всё

root@newmail [/var/log] # echo $sql
или в скрипте?

paradox
проходил мимо
Сообщения: 11620
Зарегистрирован: 2008-02-21 18:15:41

Re: Не могу понять sql запрос не вводит данные в базу?

Непрочитанное сообщение paradox » 2009-06-10 14:46:40

ясное дело в скрипте

Аватара пользователя
bobot
ст. прапорщик
Сообщения: 589
Зарегистрирован: 2008-05-28 20:03:17

Re: Не могу понять sql запрос не вводит данные в базу?

Непрочитанное сообщение bobot » 2009-06-10 14:49:52

вот результат вывода

Код: Выделить всё

insert into users(nick, password) values('maxd', '81dc9bdb52d04dc20036dbd8313ed055') 
Последний раз редактировалось bobot 2009-06-10 14:56:40, всего редактировалось 1 раз.

paradox
проходил мимо
Сообщения: 11620
Зарегистрирован: 2008-02-21 18:15:41

Re: Не могу понять sql запрос не вводит данные в базу?

Непрочитанное сообщение paradox » 2009-06-10 14:53:03

совсем ничего оно писать не может
как минимум перая часть строки будет

так что вам наверное стоит php подучить

Аватара пользователя
bobot
ст. прапорщик
Сообщения: 589
Зарегистрирован: 2008-05-28 20:03:17

Re: Не могу понять sql запрос не вводит данные в базу?

Непрочитанное сообщение bobot » 2009-06-10 14:57:29

paradox писал(а):совсем ничего оно писать не может
как минимум перая часть строки будет

так что вам наверное стоит php подучить
вот результат вывода

Код: Выделить всё

insert into users(nick, password) values('maxd', '81dc9bdb52d04dc20036dbd8313ed055') 

paradox
проходил мимо
Сообщения: 11620
Зарегистрирован: 2008-02-21 18:15:41

Re: Не могу понять sql запрос не вводит данные в базу?

Непрочитанное сообщение paradox » 2009-06-10 15:00:21

и что если эту строку прямо в mysql> выполнить то ничего не добавляеться?

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Re: Не могу понять sql запрос не вводит данные в базу?

Непрочитанное сообщение zg » 2009-06-10 15:03:20

bobot писал(а):вот результат вывода
запрос у тебя выполняется с ошибкой, юзай функцию my_query вместо mysql_query и будет счастье :smile:

Аватара пользователя
bobot
ст. прапорщик
Сообщения: 589
Зарегистрирован: 2008-05-28 20:03:17

Re: Не могу понять sql запрос не вводит данные в базу?

Непрочитанное сообщение bobot » 2009-06-10 15:04:36

paradox писал(а):и что если эту строку прямо в mysql> выполнить то ничего не добавляеться?
так смысел в mysql это делать я то пробывал добовляется

Но мне ж надо что б это добавлялось со скрипта ...
я заполняю форму регистрации оно пишет что вы типа успешно зарегистрировались а в базе не хрена не заполнено

в скрипте по идеи вот так добавляю

Код: Выделить всё

$sql = "insert into users (nick, password) values ('".strtolower($nick)."','".md5($pass)."')";
где-то ошибка не знаю где :st:

Tuchka
рядовой
Сообщения: 23
Зарегистрирован: 2008-09-19 7:54:52
Контактная информация:

Re: Не могу понять sql запрос не вводит данные в базу?

Непрочитанное сообщение Tuchka » 2009-06-11 8:40:59

Здравствуйте,

В пхп я не сильна :) но на перле аналогичный скрипт проходит. Привожу свой пример. может в cgi скрипт его вставите. заработать по идее должно.

Код: Выделить всё

freeserver# cat mysql_users.pl
#!/usr/bin/perl -w
use strict;
use warnings;
use DBI;
#Connect into database
my $dbh=DBI->connect('dbi:mysql:bugs:localhost', 'root', '*****') or die "Can't connect";
my $sth=$dbh->prepare('SET NAMES utf8');
$sth->execute();
$sth->finish();
my $nick='dang3';
my $pass='81hgjg';
$pass=`md5 -s $pass`;
$pass =~ s/(.*) = //;
$sth=$dbh->prepare("insert into profiles (login_name, cryptpassword) VALUES ('$nick', '$pass')");
$sth->execute();
$sth->finish();
$dbh->disconnect();
Вот описание таблицы:

Код: Выделить всё

mysql> desc profiles;
+---------------+--------------+------+-----+---------+----------------+
| Field         | Type         | Null | Key | Default | Extra          |
+---------------+--------------+------+-----+---------+----------------+
| userid        | mediumint(9) | NO   | PRI | NULL    | auto_increment |
| login_name    | varchar(255) | NO   | UNI | NULL    |                |
| cryptpassword | varchar(128) | YES  |     | NULL    |                |
| realname      | varchar(255) | NO   |     |         |                |
| disabledtext  | mediumtext   | NO   |     | NULL    |                |
| mybugslink    | tinyint(4)   | NO   |     | 1       |                |
| extern_id     | varchar(64)  | YES  |     | NULL    |                |
| disable_mail  | tinyint(4)   | NO   |     | 0       |                |
+---------------+--------------+------+-----+---------+----------------+
8 rows in set (0.02 sec)

mysql>
результат

Код: Выделить всё

mysql> select * from profiles where login_name like 'dang3';
+--------+------------+-----------------------------------+----------+--------------+------------+-----------+--------------+
| userid | login_name | cryptpassword                     | realname | disabledtext | mybugslink | extern_id | disable_mail |
+--------+------------+-----------------------------------+----------+--------------+------------+-----------+--------------+
|   1670 | dang3      | ea3970aee88475b7f4d12a2e4520ed3e
 |          |              |          1 | NULL      |            0 |
+--------+------------+-----------------------------------+----------+--------------+------------+-----------+--------------+
1 row in set (0.00 sec)

mysql>

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Re: Не могу понять sql запрос не вводит данные в базу?

Непрочитанное сообщение zg » 2009-06-11 15:28:45

Tuchka писал(а):результат
если стобцов много, а строк мало, то лучше юзай \G вместо точки с апятой в конце запроса, вывод будет приятней :smile:

Dirty.Eager
мл. сержант
Сообщения: 72
Зарегистрирован: 2008-10-25 3:05:59

Re: Не могу понять sql запрос не вводит данные в базу?

Непрочитанное сообщение Dirty.Eager » 2009-06-12 2:42:37

bobot писал(а):
paradox писал(а):и что если эту строку прямо в mysql> выполнить то ничего не добавляеться?
так смысел в mysql это делать я то пробывал добовляется

Но мне ж надо что б это добавлялось со скрипта ...
я заполняю форму регистрации оно пишет что вы типа успешно зарегистрировались а в базе не хрена не заполнено

в скрипте по идеи вот так добавляю

Код: Выделить всё

$sql = "insert into users (nick, password) values ('".strtolower($nick)."','".md5($pass)."')";
где-то ошибка не знаю где :st:
Дай описание таблицы users, т.е. desc users или show create table users из интерфейса mysql

paradox
проходил мимо
Сообщения: 11620
Зарегистрирован: 2008-02-21 18:15:41

Re: Не могу понять sql запрос не вводит данные в базу?

Непрочитанное сообщение paradox » 2009-06-12 2:52:27

лучше как сказал zg поюзать правильную функцию
либо смотреть результат выполнения запроса
есть предположения что тупо нет коннекта к базе

Dirty.Eager
мл. сержант
Сообщения: 72
Зарегистрирован: 2008-10-25 3:05:59

Re: Не могу понять sql запрос не вводит данные в базу?

Непрочитанное сообщение Dirty.Eager » 2009-06-12 3:06:28

paradox писал(а):лучше как сказал zg поюзать правильную функцию
А mysql_query чем плоха?
Вообще? автор не привел код, выполняющий функцию обращения к базе. Если у него действительно в скрипте только строчка

Код: Выделить всё

$sql = "insert into users (nick, password) values ('".strtolower($nick)."','".md5($pass)."')";
то неудивительно, что в базу ничего не добавляется.
paradox писал(а):либо смотреть результат выполнения запроса
есть предположения что тупо нет коннекта к базе
Если же он меняет тело запроса в заведомо работающей функции mysql_query (приведенной в начале), то, видимо, проблемы с синтаксисом запроса. Возможно, в частности, что он не задает поле, определенное как NOT NULL и не имеющее DEFAULT.

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Re: Не могу понять sql запрос не вводит данные в базу?

Непрочитанное сообщение zg » 2009-06-12 6:36:15

Dirty.Eager писал(а):А mysql_query чем плоха?
ничем не плоха, просто моя функция в случае чего выдаёт развёрнутое описание ошибки MySQL, что очень удобно при отладке, да и просто работе.
Dirty.Eager писал(а):автор не привел код, выполняющий функцию обращения к базе.
гм.. по моему я этот код видел в другой теме.. хотя нет, там другой код -) но думаю, как пример будет полезен http://forum.lissyara.su/viewtopic.php?f=17&t=18437 -)