|
|
|
| Здравствуйте.
Надоел уже всем вопрос авторизации, но мне некуда больше обратиться за помощью.
Взял пример отсюда:
http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=42730
Со скриптом все более менее понятно, а в MySQL я полный дуб.
Создал базу, как прописано, а у меня вылезла ошибка
mysql_result(): supplied argument is not a valid MySQL result resource
Что это за зверь, и как с ним бороться? Мне бы только принцип понять этих баз, дальше разберусь...
Спасибо. | |
|
|
|
|
|
|
|
для: Николай2357
(16.07.2008 в 12:59)
| | Это связано с тем, что выполнение SQL-запроса не обрабатывается на предмет ошибок, после каждого запроса mysql_query() необходимо проверять правильность выполнения запроса
<?php
$res = mysql_query($query);
if(!$res) exit("Ошибка - ".mysql_error());
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(16.07.2008 в 13:14)
| | Ну то, что в базе пусто, я уже и сам догодался. Это нетрудно, просто проверил базу и все. Непонятно почему...
Там наверное должно чтото быть для сравнения. Забить руками туда чего-нибудь?
Не помогает. Что это значит:Query was empty? Что там пусто? Никак принцип понять не могу. Этот скрипт для того и нужен, чтобы в базу данные занести, а он даже не пытается, пишет, что пусто. Понятно что пусто. | |
|
|
|
|
|
|
|
для: Николай2357
(16.07.2008 в 13:44)
| | Подскажите что нибудь,я готов головой об стену биться!
Вот начало:
<?
mysql_connect("localhost", "users", "2357");
mysql_select_db("testtable");
?>
|
С базой он соединяется, ошибки ведь нет. Что такое testtable? Другая база или что?
Я и такую сделал. Наколотил в обе записей. Почему пустой запрос? Данные из формы передаются, я проверил. Что не так тут? | |
|
|
|
|
|
|
|
для: Николай2357
(16.07.2008 в 14:25)
| | Напишите весь текст, относящийся к. Какой смысл цедить по паре строк?
Кстати, начало Вас ничему не научило.
if(!mysql_connect("localhost", "users", "2357"))
exit("Connect error " . mysql_error());
if(!mysql_select_db("testtable"))
exit("Select database error " . mysql_error());
|
Если Вы не знаете, что такое testtable - ЗАЧЕМ Вы его пишете? | |
|
|
|
|
|
|
|
для: Trianon
(16.07.2008 в 14:39)
| | Ну я ведь написал, что взял готовый код и хочу на его основе понять принцип работы с базами. Весь код писать не стал, он уже есть на этом форуме, написал ссылку в первом почте. А насчет
>Если Вы не знаете, что такое testtable - ЗАЧЕМ Вы его пишете?
Это ведь не я написал. А там про базу "users" написано, а про "testtable" ни строчки. | |
|
|
|
|
|
|
|
для: Николай2357
(16.07.2008 в 14:50)
| | >Это ведь не я написал. А там про базу "users" написано, а про "testtable" ни строчки.
Там написано про таблицу users, а не про базу.
Как у Вас называется база, автору скрипта неведомо. | |
|
|
|
|
|
|
|
для: Николай2357
(16.07.2008 в 14:50)
| | Нужно написать имя реально существующей базы, с которой будет работать скрипт. | |
|
|
|
|
|
|
|
для: sms-send
(16.07.2008 в 15:25)
| | Да это издевательство какое то над организмом. Пока я так ничего и не понял. Простите за тупость, но куда написать? Я во все дыры уже писал, и баз наделал гору, и таблиц. Напишите пожалуйста, если не трудно, где там что. Где пользователь, где пароль, где база, где таблица. Пользователь это что такое, то, что при создании базы писал? Имя базы такое же? Можно по порядку, я структуры понять не могу.
Спасибо. | |
|
|
|
|
|
|
|
для: Trianon
(16.07.2008 в 14:39)
| | Вот в книжке написано:
mysql_connect(имя хоста, имя пользователя, пароль)
mysql_select_db(имя базы данных)
Когда я базу создаю, там есть логин (я так понимаю, что имя пользователя), название базы
(тоже самое), пароль. Если я все это делаю, ничего не получается. | |
|
|
|
|
|
|
|
для: Николай2357
(16.07.2008 в 16:01)
| | Есть сервер MySQL . Определяется он своим адресом (имя хоста, обычно localhost ) и номером порта (обычно 3306)
На сервере создаются базы данных и заводятся пользователи.
Базы данных определяются именем БД, пользователи определяются логинами (или username) Для аутентификации логинов используются пароли пользователей. Кроме того, пользователям выдаются права на доступ к серверу, к БД, к таблицам в нужном объеме.
В пределах БД пользователи могут создавать таблицы и работать с ними. | |
|
|
|
|
|
|
|
для: Trianon
(16.07.2008 в 16:45)
| | Спасибо за разъяснение, вроде бы получилось... | |
|
|
|
|
|
|
|
для: Николай2357
(16.07.2008 в 16:01)
| | Как базу создаешь? приведи запрос на создание | |
|
|
|
|
|
|
|
для: GeorgeIV
(16.07.2008 в 16:45)
| | Какой запрос? Я в phpMyAdmin ее создавал... А что, еще на создание запрос писать надо? | |
|
|
|
|
|
|
|
для: Николай2357
(16.07.2008 в 16:54)
| | ну тут просто за тебя phpMyAdmin написал запрос. Проверяй, как уже сказали, юзера и пароль. | |
|
|
|
|
|
|
|
для: Trianon
(16.07.2008 в 14:39)
| | >Кстати, начало Вас ничему не научило.
Скажите, а что это дает? Oшибки и так выводятся, может не все? | |
|
|
|
|
|
|
|
для: Николай2357
(16.07.2008 в 16:09)
| | > Скажите, а что это дает?
Выводятся ошибки.
> Oшибки и так выводятся, может не все?
Да, не все.
P.S. Вы сначала бы попробовали, прежде чем спрашивать. А то как-то не по-людски... | |
|
|
|
|
|
|
|
для: BinLaden
(16.07.2008 в 16:36)
| | Зря Вы так, конечно попробовал.
Warning: mysql_connect() [function.mysql-connect]: Access denied for user 'inkz.ru'@'localhost' (using password: YES) in Z:\home\localhost\www\inkz.ru\register.php on line 7
Вот это выдается по умолчанию, а вот это
Ошибка Access denied for user 'inkz.ru'@'localhost' (using password: YES)
с Вашим вариантом. В первом случае есть строка - источник ошибки, во втором нет. Вот я и спросил, чем Ваш вариант предпочтительней.
А по существу Вам добавить конечно же нечего... | |
|
|
|
|
|
|
|
для: Николай2357
(16.07.2008 в 16:45)
| | Вы либо указали несуществующего пользователя, либо ввели неверный для него пароль. | |
|
|
|
|
|
|
|
для: BinLaden
(16.07.2008 в 16:54)
| | Слава Аллаху, с этим вроде разобрался. Теперь
...your MySQL server version for the right syntax to use near 'Resource id #3' at line 1
появилось. Скажите, это версия у меня не та или в коде ошибка?
CREATE TABLE `users` (
`user_id` int(11) unsigned NOT NULL auto_increment,
`user_login` varchar(30) NOT NULL,
`user_password` varchar(32) NOT NULL,
`user_hash` varchar(32) NOT NULL,
`user_ip` int(10) unsigned NOT NULL default '0',
PRIMARY KEY (`user_id`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=1
|
Спасибо. | |
|
|
|
|
|
|
|
для: Николай2357
(16.07.2008 в 16:45)
| | - | |
|
|
|
|
|
|
|
для: ronin
(16.07.2008 в 17:34)
| | >-
Это что значит, просветите глупого... | |
|
|
|
|
|
|
|
для: Николай2357
(16.07.2008 в 17:46)
| | Это то, что на форуме нельзя удалить свое сообщение, только править :-) | |
|
|
|
|
|
|
|
для: GeorgeIV
(16.07.2008 в 17:53)
| | Спасибо, не знал. А по коду все таки непонятно, когда в MySQL вставлял, претензий не было, а скрипт пишет, что синтаксическая ошибка... Или это мой "вольный" перевод? | |
|
|
|
|
|
|
|
для: Николай2357
(16.07.2008 в 18:17)
| | попробуй убрать AUTO_INCREMENT=1 | |
|
|
|
|
|
|
|
для: GeorgeIV
(16.07.2008 в 18:22)
| | Неа, не помогает. Обидно, остальное все работает. | |
|
|
|
|
|
|
|
для: Николай2357
(16.07.2008 в 18:41)
| | Я просто написал, что по умолчанию пользователь "root" а пароль "" (пробел),но смотрю, что с тем какой пароль и пользователь Вы разобрались, и стер свое сообщение:). Помойму то сообщение, что Вы приводите не про дамп инфы в базу, а про обращение к ней. Лучше привести все сообщение про ошибку и строчку кода там где $query = mysql_query("SELECT .." | |
|
|
|
|
|
|
|
для: Николай2357
(16.07.2008 в 18:41)
| | Все. Домучал я его. Незнаю как, одной наглостью и настырностью. Зато узнал массу нового, а главное, теперь MySQL для меня не такой темный лес.
Большое спасибо всем, кто не бросил в трудную минуту!!! | |
|
|
|
|
|
|
|
для: Николай2357
(16.07.2008 в 12:59)
| | Принцип (и не только в БД, но и вообще в программировании) очень простой.
Нельзя запрещать вывод любых диагностических сообщений, пока Вы на 100% не уверены в том, как будет работать код.
В противном случае Вы просто будете тыкаться вслепую. | |
|
|
|
|
|
|
|
для: Trianon
(16.07.2008 в 13:15)
| | Спасибо за подсказку, просто я код взял готовый, а там диагностики небыло. | |
|
|
|