Страница 1 из 1

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

Добавлено: 2009-06-10 14:16:26
bobot
Теперь ближе к делу: я сделал страничку регистрации для юзеров , в этом скрипте я сделал такой 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'];
так в чём же дело всё таки?

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

Добавлено: 2009-06-10 14:20:01
paradox
echo $sql результирующий выведи для дебага
что бы понять что где и как не срабатывает

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

Добавлено: 2009-06-10 14:23:25
bobot
paradox писал(а):echo $sql результирующий выведи для дебага
что бы понять что где и как не срабатывает
как его выводить прямо в скрипте просто не знаю?

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

Добавлено: 2009-06-10 14:24:48
paradox
прям таки выводи

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

Добавлено: 2009-06-10 14:35:30
bobot
paradox писал(а):прям таки выводи
так где именно тут

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

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

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

Добавлено: 2009-06-10 14:46:40
paradox
ясное дело в скрипте

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

Добавлено: 2009-06-10 14:49:52
bobot
вот результат вывода

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

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

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

Добавлено: 2009-06-10 14:53:03
paradox
совсем ничего оно писать не может
как минимум перая часть строки будет

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

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

Добавлено: 2009-06-10 14:57:29
bobot
paradox писал(а):совсем ничего оно писать не может
как минимум перая часть строки будет

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

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

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

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

Добавлено: 2009-06-10 15:00:21
paradox
и что если эту строку прямо в mysql> выполнить то ничего не добавляеться?

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

Добавлено: 2009-06-10 15:03:20
zg
bobot писал(а):вот результат вывода
запрос у тебя выполняется с ошибкой, юзай функцию my_query вместо mysql_query и будет счастье :smile:

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

Добавлено: 2009-06-10 15:04:36
bobot
paradox писал(а):и что если эту строку прямо в mysql> выполнить то ничего не добавляеться?
так смысел в mysql это делать я то пробывал добовляется

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

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

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

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

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

Добавлено: 2009-06-11 8:40:59
Tuchka
Здравствуйте,

В пхп я не сильна :) но на перле аналогичный скрипт проходит. Привожу свой пример. может в 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>

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

Добавлено: 2009-06-11 15:28:45
zg
Tuchka писал(а):результат
если стобцов много, а строк мало, то лучше юзай \G вместо точки с апятой в конце запроса, вывод будет приятней :smile:

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

Добавлено: 2009-06-12 2:42:37
Dirty.Eager
bobot писал(а):
paradox писал(а):и что если эту строку прямо в mysql> выполнить то ничего не добавляеться?
так смысел в mysql это делать я то пробывал добовляется

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

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

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

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

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

Добавлено: 2009-06-12 2:52:27
paradox
лучше как сказал zg поюзать правильную функцию
либо смотреть результат выполнения запроса
есть предположения что тупо нет коннекта к базе

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

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

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

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

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

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