Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > PHP: Общие вопросы > Проблема с sql-запросом (или с чем-то другим) |
Автор: CruorVult 17.11.2008, 16:23 | ||
Проблема заключается в том, что не выполняется запрос INSERT INTO $usertable Values('$username','$rah','$summa'). Тоесть конектится к ДБ нормально. Выполняется этот кусок : elseif(!$result) {echo "error";} Подскажите, может я что-то не правильно делаю! |
Автор: americanets 17.11.2008, 16:41 | ||||
CruorVult, выделяй код подсветкой
конкатенация , нельзя ставить переменную в одинарных кавычках + mysql_real_escape_string
|
Автор: CruorVult 17.11.2008, 16:58 |
Всеравно выводит error, может дело совсем не в запросе а в чем-то другом |
Автор: awers 17.11.2008, 17:15 | ||||||||||||||||||||
americanets, плохо шутки шутите
Добавлено через 1 минуту и 34 секунды и еще по поводу
минус вам положен..
Добавлено через 6 минут и 58 секунд А вообще вопросов по этому скрипту много...
почему не
и только потом проверка на существование??
блок
вообще внутри ифа. так не проще ли все в 2 строки сделать?
тоже прикольно ничего не скажешь )) это же не делфи )
как говорит лебедев - мегакруто )) ?> |
Автор: unicross 17.11.2008, 17:27 | ||||
После этой строки вставьте
Покажите результат вывода и SQL-запрос для создания таблицы. По моему надо
Думаю в переменной пусто... |
Автор: awers 17.11.2008, 17:30 | ||||
вообще что то типа
может чего и сам не досмотрел Добавлено через 46 секунд unicross,
думаю тут и так глюков валом )) Добавлено через 1 минуту и 44 секунды unicross, хотя нет стойте. а может у него на другой странице данные записываются. короче в любом случае все криво. |
Автор: CruorVult 17.11.2008, 19:18 | ||||||||
короч, вот текст аутентификации(который работает)
Сесия продолжается... если я захожу под своим логином вызывается ф-я vnesok();
заполняются поля и потом вызывается этот мой код(который не пашит) Добавлено через 8 минут и 15 секунд
Это я так искал в чем ошибка ![]() |
Автор: unicross 17.11.2008, 19:51 | ||
Ошибка сообщает, что число столбцов в таблице и в операторе INSERT не совпадают...
У вас 6 полей, а вставляете только в 3. Где логика? |
Автор: CruorVult 17.11.2008, 19:57 |
Понял, в чем причина! А главное сам так думал ![]() Добавлено через 8 минут и 12 секунд Теперь все GOOD ![]() |
Автор: unicross 17.11.2008, 20:07 | ||||
Думаю все-таки не поняли... Перечитайте ВНИМАТЕЛЬНО все исправления сделанные в вашем коде awers
С этими данными я войду в вашу систему НЕ ЗНАЯ ни логина ни пароля... |
Автор: CruorVult 17.11.2008, 20:44 | ||
Переделал, но после этого вывело ошибки : Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: Access denied for user 'ODBC'@'localhost' (using password: NO) in D:\home\localhost\www\project\rgr\operation.php on line 9 Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: A link to the server could not be established in D:\home\localhost\www\project\rgr\operation.php on line 9 |
Автор: unicross 17.11.2008, 22:17 |
Да. Здесь awers просто ошибся в последовательности. Функцией mysql_real_escape_string() можно пользоваться ТОЛЬКО после подключения к базе данных!!! А вот пользоваться этой функцией надо обязательно... Итог. Вначале проверяем существование переменных (лишь потом создаем короткие имена), затем подключаемся к базе данных, потом используем функцию mysql_real_escape_string() и только в конце выполняем SQL-запрос и проверяем его результат. |
Автор: CruorVult 17.11.2008, 23:06 | ||
Теперь разобрался, еще почитал про эту ф-ю на http://ua.php.net/mysql_real_escape_string, там все подробно расписано. Ну конечно в нынешнем проекте эта ф-я не очень так и надо но на будущее весьма полезна ![]() Также не помешает использовать готовую ф-ю
|