klex234
2.05.2012, 14:25:44
@mysql_query('INSERT INTO news (login,pass,mail) VALUES('.$login.','.$pass.','.$mail.')') or
die('Nie można utworzyć konta');
Niktoś
2.05.2012, 14:28:31
Będziesz wiedział jak usuniesz @ ,którą masz na samym początku.
mysql_query('INSERT INTO news (login,pass,mail) VALUES('.$login.','.$pass.','.$mail.')') OR die(mysql_error());
pedro84
2.05.2012, 14:30:15
Usuń małpkę to zobaczysz.
klex234
2.05.2012, 14:32:08
Jak usunę @ to jest tak samo
muniekw
2.05.2012, 14:32:45
Spróbuj tak:
mysql_query("INSERT INTO news (login,pass,mail) VALUES(".$login.",".$pass.",".$mail.")") OR die('Nie można utworzyć konta');
klex234
2.05.2012, 14:35:21
Cytat(muniekw @ 2.05.2012, 15:32:45 )

Spróbuj tak:
mysql_query("INSERT INTO news (login,pass,mail) VALUES(".$login.",".$pass.",".$mail.")") OR die('Nie można utworzyć konta');
Tak samo jest
Niktoś
2.05.2012, 14:35:32
Edytowałem u góry ,żeby zobaczyć błędy sql'owe użyj
mysql_error() ,bo die zwraca Ci napis.
ulek1987
2.05.2012, 14:39:39
$mysql= mysql_connect("localhost", "juzer", "samopas", "test");
$wpis=("INSERT INTO news (login,pass,mail) VALUES(".$login.",".$pass.",".$mail.")") ;
$ddodanie = mysql_query($mysql, $wpis)
or die(mysql_error($mysql));
klex234
2.05.2012, 14:41:14
"No database selected"
muniekw
2.05.2012, 14:42:23
Cytat(klex234 @ 2.05.2012, 15:41:14 )

"No database selected"
No to masz odpowiedź
ulek1987
2.05.2012, 14:43:03
$mysql= mysql_connect("localhost", "juzer", "samopas", "test");
tutaj wpisujesz własne dane, kolejno : nazwahosta, nazwa uzytkonika w bazie danych, hasło do bazy, nazwa bazy.
klex234
2.05.2012, 14:45:19
w pliku config który dołączam mam połączenie i selectowanie
pedro84
2.05.2012, 14:46:56
Pokaż...
klex234
2.05.2012, 14:49:03
<?php
define('DB_HOST','mysql.cba.pl'); // Serwer bazy danych define('DB_USER','-------'); // Nazwa użytkownika bazy danych define('DB_PASS','-------'); // Hasło do bazy danych define('DB_NAME','---------------'); // Nazwa bazy danych
if (!$conn) {
die ('<p class="error">Błąd łączenia z bazą danych</p>'); }
?>
Niktoś
2.05.2012, 14:52:27
A jak to includujesz ?Bo to wporządku się wydaje.
muniekw
2.05.2012, 14:52:51
Zawsze możesz wyświetlić sobie zapytanie: zobaczyć jakie wartości dostają się do niego i wkleić bezpośrednio do phpMyAdmina.
Zobaczysz czy zwróci Ci jakiś błąd.
A spróbuj jeszcze tak, bo wydaje mi się że problem może być przez "ciapki".
mysql_query("INSERT INTO news (login,pass,mail) VALUES('".$login."','".$pass."','".$mail."')") OR die('Nie można utworzyć konta');
Niktoś
2.05.2012, 14:58:36
Muniekw to nie jest wina ciapek.
Raczej nie otrzymałby błędu:
"No database selected".
Sugeruje abyś przedstawił innym jak includujesz ten plik konfiguracji z bazą danych.
muniekw
2.05.2012, 15:01:44
Cytat(Niktoś @ 2.05.2012, 15:58:36 )

Muniekw to nie jest wina ciapek.
Raczej nie otrzymałby błędu:
"No database selected".
W sumie jak się zastanowić to masz rację

dobra to jak includujesz plik
pedro84
2.05.2012, 15:02:28
I usuń wszędzie te @!
klex234
2.05.2012, 15:05:46
Niktoś
2.05.2012, 15:08:26
No to fajnie,kurcze nie wiedziałem nigdy metody require.Chyba ten skrypt twój musi być rządowy ,jakiś top secret ,że nie chcesz nam go pokazać.Może źle używasz tej metody,ale zdaje się ,że chyba się nie dowiemy.
klex234
2.05.2012, 15:20:03
przecież wyświetla mi błąd nie z pliku gdzie mam ten insert tylko z pliku config.php
Niktoś
2.05.2012, 15:29:53
Otrzymujesz błąd z tej kwerendy
mysql_query('INSERT INTO news (login,pass,mail) VALUES('.$login.','.$pass.','.$mail.')') OR die(mysql_error());
"No database selected",gdzie kwerenda ta jest w innym pliku niż twój plik konfiguracyjnym.Więc prawdopodobnie błednie używasz metody require i nie nawiązujesz połączenia z bazą danych.Może używasz jej zbyt późno ,może w ogóle jest niewykonywana ,gdyż może znajdować się w bloku if.Ale ja tylko zgaduje.
klex234
2.05.2012, 15:32:29
Sprawdzałem z jakiego pliku. Do linijki z wybieraniem bazy dodałem: or die('nie można wybrać bazy') i to wyświetla
ulek1987
2.05.2012, 15:35:44
$add_site = true;
include "config.php";
ja robie to tak i działa zawsze
Niktoś
2.05.2012, 15:48:57
Sprawdź jeszcze raz dokładnie ,nawę bazy,hasło,usera.Może źle coś wpisałeś,wielkość liter także ma znaczenie.
Jeśli masz jakieś polskie znaki w tych parametrach zmień na "bez ogonków".Gdyż może być tak ,że masz błędne kodowanie.
greycoffey
2.05.2012, 18:43:22
Jak się @ucisza@ błędy, zamiast je pokazywać, to tak się kończy.
klex234
3.05.2012, 12:32:20
Coś mi się udało wykombinować. Jak próbowałem się zarejestrować(skrypt rejestracji) to wywala taki błąd:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '@poczta.onet.pl)' at line 1
O co chodzi?
Niktoś
3.05.2012, 13:14:39
Bo w tej zmiennej/stringu @poczta.onet.pl jest @,a małpa zazwyczaj w języku sql oznacza parametr ,więc musisz zmienną escapować ,używając {zmienna} lub `zmienna`.
mortus
3.05.2012, 14:09:52
Cytat(Niktoś @ 3.05.2012, 14:14:39 )

Bo w tej zmiennej/stringu @poczta.onet.pl jest @,a małpa zazwyczaj w języku sql oznacza parametr ,więc musisz zmienną escapować ,używając {zmienna} lub `zmienna`.
Niktoś nie obraź się, ale straszne głupoty piszesz. Łańcuch znaków, to zawsze łańcuch znaków i nie ma znaczenia, czy jest w nim @, czy jej nie ma. Poza tym nawiasów sześciennych, czyli {}, używamy w PHP do wstawiania zmiennej do łańcucha znaków, a gravisów, czyli `, używamy w MySQL do ograniczania nazw tabel, kolumn, aliasów, itp., ale nie do wartości, jaką bez wątpienia jest e-mail. Błąd wynika raczej z czegoś innego np. źle napisanego zapytania, ale żeby móc to "zdiagnozować" potrzebny jest aktualny kod.
Niktoś
3.05.2012, 14:48:36
Tak patrze na ten syntax:
syntax to use near '@poczta.onet.pl.
Przykładowo podstawiając:
$zmienna="@poczta.onet.pl"; //zmienna
select email from db where email=$zmienna //-podstawiona zmienna w zapytaniu
czy wtedy wygenerowane przez php zapytanie nie będzie wyglądać w mysql tak:
SELECT email FROM db WHERE email=@poczta.onet.pl
Czy w ten sposób mysql nie zgłupieje -myśląc ,że zamiast wartości jest to parametr?
Niech autor tematu może poda więcej szczegółów ,bo można tylko się domyślać i snuć zwariowane teorie.
mortus
3.05.2012, 14:56:23
Cytat(Niktoś @ 3.05.2012, 15:48:36 )

Tak patrze na ten syntax:
syntax to use near '@poczta.onet.pl.
Przykładowo podstawiając:
$zmienna="@poczta.onet.pl"; //zmienna
select email from db where email=$zmienna //-podstawiona zmienna w zapytaniu
czy wtedy wygenerowane przez php zapytanie nie będzie wyglądać:
SELECT email FROM db wher email=@poczta.onet.pl
Czy w ten sposób mysql nie zgłupieje -myśląc ,że zamiast wartości jest to poarametr?
Tyle, że adresy e-mail nie rozpoczynają się znakiem @, więc dla MySQL @poczta parametrem nie jest (gdyby był, to MySQL próbowałby podstawić odpowiednią wartość i wykrzyczał, że nie może tej wartości znaleźć). Najprawdopodobniej brakuje apostrofów, które powinny otaczać adres e-mail jako wartość tekstową. Syntax error oznacza błąd w składni zapytania, a nie próbę użycia nieistniejącego parametru. Natomiast {} i `` nijak się do tego mają.
klex234
3.05.2012, 15:58:49
Dziękuje za odpowiedzi. Wszystko już działa.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę
kliknij tutaj.