Страница 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 писал(а):прям таки выводи
так где именно тут
или в скрипте?
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 и будет счастье

Re: Не могу понять sql запрос не вводит данные в базу?
Добавлено: 2009-06-10 15:04:36
bobot
paradox писал(а):и что если эту строку прямо в mysql> выполнить то ничего не добавляеться?
так смысел в mysql это делать я то пробывал добовляется
Но мне ж надо что б это добавлялось со скрипта ...
я заполняю форму регистрации оно пишет что вы типа успешно зарегистрировались а в базе не хрена не заполнено
в скрипте по идеи вот так добавляю
Код: Выделить всё
$sql = "insert into users (nick, password) values ('".strtolower($nick)."','".md5($pass)."')";
где-то ошибка не знаю где

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 вместо точки с апятой в конце запроса, вывод будет приятней

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)."')";
где-то ошибка не знаю где

Дай описание таблицы 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 -)