Skocz do zawartości

Witamy w Nieoficjalnym polskim support'cie AMX Mod X

Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
  • Rozpoczynaj nowe tematy i odpowiedaj na inne
  • Zapisz się do tematów i for, aby otrzymywać automatyczne uaktualnienia
  • Dodawaj wydarzenia do kalendarza społecznościowego
  • Stwórz swój własny profil i zdobywaj nowych znajomych
  • Zdobywaj nowe doświadczenia

Dołączona grafika Dołączona grafika

Guest Message by DevFuse
 

Zdjęcie

Połączenie z baza dancyh


  • Zamknięty Temat jest zamknięty
8 odpowiedzi w tym temacie

#1 karolo_k

    Wszechpomocny

  • Użytkownik

Reputacja: 8
Nowy

  • Postów:328
  • GG:
  • Lokalizacja:Polska
Offline

Napisano 19.10.2010 18:13

Witam ja mam problem z połączeniem z baza danych. Używam prostego skryptu do przetestowania połączenia. Skrypt:
<?php
if(!mysql_connect('localhost','login','haslo')){
return 'niepolaczono';
} else {
return 'polaczono';
}
?>
niezwraca żadnej wartości, poprostu mam biała karta a gdy zmienie na tak:
<?php
if(!mysql_connect('94.23.92.159','login','haslo')){
return 'niepolaczono';
} else {
return 'polaczono';
}
?>
To mam komunikat tego pytu:
Warning: mysql_connect() [function.mysql-connect]: Access denied for user 'login'@'94-23-92-159.kimsufi.com' (using password: YES) in /home/nazwakonta/domains/domena.pl/public_html/db/test.php on line 2
  • +
  • -
  • 0

#2 DarkGL

    Nie oddam ciasteczka !

  • Administrator

Reputacja: 6 555
Godlike

  • Postów:11 981
  • GG:
  • Steam:steam
  • Imię:Rafał
  • Lokalizacja:Warszawa
Offline

Napisano 19.10.2010 18:21


<?php

if(!mysql_connect('94.23.92.159','login','haslo')){

echo "niepolaczono";

} else {

 echo "polaczono";

}

?>

  • +
  • -
  • 0

#3 karolo_k

    Wszechpomocny

  • Autor tematu
  • Użytkownik

Reputacja: 8
Nowy

  • Postów:328
  • GG:
  • Lokalizacja:Polska
Offline

Napisano 19.10.2010 19:01

OK mam polaczono. Teraz korzystam z takiego skryptu na wyciągniecie czegoś z bazdy:
<?php
function db_connect() {
$conn = mysql_connect('94.23.92.159','login','haslo' );
if(!$conn)
{
echo mysql_error();
exit;
}
if(!$db = mysql_select_db("cs......"))
{
echo mysql_error();
exit;
}
return $conn;
}
function get_user($useremail,$userpassowrd)
{
db_connect();
$query = sprintf("
SELECT * FROM users WHERE email='$useremail' AND password = '$userpassowrd'"
);
$result = mysql_query($query);
$row = mysql_fetch_assoc($result);
return $row;
}
$a = get_user('[email protected]','haslo');
print_r($a);
echo '<br>';
echo $a['name'];
?>
I mam problem
Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in /home/kar.....html/db/db_fns.php on line 23
A linia 23 to
$row = mysql_fetch_assoc($result);
Niemam pojęcia co jest źle bo dopiero raczuje w tym :confused:
  • +
  • -
  • 0

#4 Portek

    Kończymy zabawę, permanentna emerytura!

  • Przyjaciel

Reputacja: 976
Master

  • Postów:3 007
  • GG:
  • Steam:steam
  • Imię:Michał
  • Lokalizacja:Częstochowa
Offline

Napisano 19.10.2010 19:38

Czy to nie z Tobą wałkowałem ten temat na WHT? Dałem tam gotowy przykład użycia który sprawdziłem... Swoją drogą korzystając z funkcji wypadało by wiedzieć jak ich używać... Securing your MySQL Queries with Sprintf - TalkPHP


<?php
function db_connect() {
global $conn;

if($conn)
return $conn;
$conn = mysql_connect("localhost","test","test" ) or die('Could not connect to mysql server.' );
mysql_select_db("test") or die('Could not select database.');
return $conn;
}

function get_user($useremail,$userpassowrd) {
global $conn;
db_connect();

$query = sprintf("SELECT * FROM users WHERE email='%s' AND password = '%s'",
mysql_real_escape_string($useremail),
mysql_real_escape_string($userpassowrd)
);
$result = mysql_query($query);
$row = mysql_fetch_assoc($result);
if ($row)
return $row;
return $error;
}
$a = get_user('asd','asd');
if ($a) {
print_r($a);
echo '<br>';
echo $a['name'];
} else { echo "Błędny email, lub hasło!"; }
?>


Co oznacza błąd? Niewiele więcej jak fakt że zapytanie zwróciło pusty wynik - skrypt powyżej uwzględnia ten fakt.

@Down
-PainKiller- - Twój kod jest bardziej nieczytelni niż ten w pierwszym poście...
  • +
  • -
  • 0

serwer-1.png
IP: ts3.cserwerek.pl


#5 Portek

    Kończymy zabawę, permanentna emerytura!

  • Przyjaciel

Reputacja: 976
Master

  • Postów:3 007
  • GG:
  • Steam:steam
  • Imię:Michał
  • Lokalizacja:Częstochowa
Offline

Napisano 19.10.2010 19:51

Automatyczna wiadomość


Ten temat został przeniesiony z forum:
Inne -> OFF Topic
do
Inne -> WWW -> Problemy

  • +
  • -
  • 0

serwer-1.png
IP: ts3.cserwerek.pl


#6 -PainKiller-

    Wszechobecny

  • Zbanowany

Reputacja: 66
Pomocny

  • Postów:498
  • GG:
  • Steam:steam
  • Imię:Kamil
  • Lokalizacja:Kraków
Offline

Napisano 19.10.2010 19:55

zły jest argument funkcji, podejrzewam że nie można jako argument podawać funkcję

szczerze mowiac nie znam funkcji ktorych uzywasz dlatego proponuję, wydaje mi sie łatwiejszy kod;


$q = "SELECT * FROM users WHERE email='$useremail' AND password = '$userpassowrd'"; //zapytanie sqlowskie do pamieci
$r = @mysqli_query($polaczZBaza, $q); //przesył polecenia sql na serw mysql @ jest opcjonlana, jak masz malpe to ci nie podaje komunikatow o bledach w przegladarce... a argumenty podajesz polaczenie z baza dlatego teraz ci podam jak inaczej sie polaczyc

DEFINE('USER', 'uzytkownik'); //definiujesz swoje dane
DEFINE('HASLO', 'haslo');
DEFINE('HOST', 'localhost');
DEFINE('NAZWA', 'nazwa');

$polaczZBaza = @mysqli_connect(HOST, USER, HASLO, NAZWA) OR die ('brak polaczenia z mysql blablabal error: ' . mysqli_connect_error());
//i teraz masz $polaczZBaza dawac w argumencie funkcji wyzej opisanej mysqli_query

//teraz trzeba jakos te dane zrzutowac na ekran wiec mozesz taka technika

if($r){ // tu mowisz do serwera "wykonaj to co masz pod $r a nastepnie jesli nie miales problemow to wykonaj instrukcje zawarte w klamerkach

while($row = mysqli_fetch_array($r, MYSQLI_ASSOC)) { //tutaj jest stworzona zmienna wielowymiarowa (tablica) wielowymiarowa dlatego ze bedzie rzutowana po kolei a wiec //masz wyciagniete wszystkie rekordy naraz oczywiscie jesli w poleceniu $q nie podales ze chcesz 1 i teraz robimy rzutowanie w taki sposob ze....

echo ' . $row['nazwa'] . '<br />'; //to masz wypisane wszystkie wartosci z tablicy po kolei ale tylko te co nazwales jako nazwa a zeby takie miec (pod nazwą "nazwa" to trzeba //query zrobic tak

/*

"SELECT CONCAT(imie, nazwisko)AS nazwa FROM nazwabazy"
to znaczy zgrupuj mi z tabeli imie i nazwisko pod kryptonim "nazwa" FROM nazwabazy

a bez grupowania to

SELECT FROM nazwabazy (nazwa)

tu musisz dawac juz takie nazwy jak masz nazwy kolumn w bazie.... moglem zapomniec o '' lub "" nie pamietam dokladnie...

*/


}

} //koniec if $r
else {
echo "zle wykonane polecenie pod zmienna $r";
}



#7 karolo_k

    Wszechpomocny

  • Autor tematu
  • Użytkownik

Reputacja: 8
Nowy

  • Postów:328
  • GG:
  • Lokalizacja:Polska
Offline

Napisano 20.10.2010 14:55

<?php
$q = "SELECT * FROM users WHERE email='$useremail' AND password = '$userpassowrd'"; //zapytanie sqlowskie do pamieci    
$r = @mysqli_query($polaczZBaza, $q); //przesył polecenia sql na serw mysql @ jest opcjonlana, jak masz malpe to ci nie podaje komunikatow o bledach w przegladarce... a argumenty podajesz polaczenie z baza dlatego teraz ci podam jak inaczej sie polaczyc

DEFINE('USER', 'login');     //definiujesz swoje dane 
DEFINE('HASLO', 'haslo123'); 
DEFINE('HOST', 'localhost'); 
DEFINE('NAZWA', 'dbname'); 

$polaczZBaza = @mysqli_connect(HOST, USER, HASLO, NAZWA) OR die ('brak polaczenia z mysql blablabal error: ' . mysqli_connect_error()); 
//i teraz masz $polaczZBaza dawac w argumencie funkcji wyzej opisanej mysqli_query 

//teraz trzeba jakos te dane zrzutowac na ekran wiec mozesz taka technika 

if($r){   //  tu mowisz do serwera "wykonaj to co masz pod $r a nastepnie jesli nie miales problemow to wykonaj instrukcje zawarte w klamerkach 

while($row = mysqli_fetch_array($r, MYSQLI_ASSOC)) {     //tutaj jest stworzona zmienna wielowymiarowa (tablica) wielowymiarowa dlatego ze bedzie rzutowana po kolei a wiec //masz wyciagniete wszystkie rekordy naraz oczywiscie jesli w poleceniu $q nie podales ze chcesz 1 i teraz robimy rzutowanie w taki sposob ze....
 
echo $row['name'];       //to masz wypisane wszystkie wartosci z tablicy po kolei ale tylko te co nazwales jako nazwa a zeby takie miec (pod nazwą "nazwa" to trzeba //query zrobic tak




}

} //koniec if $r
else {
echo "zle wykonane polecenie pod zmienna $r"; 
}
?>
Rezultat
zle wykonane polecenie pod zmienna

  • +
  • -
  • 0

#8 -PainKiller-

    Wszechobecny

  • Zbanowany

Reputacja: 66
Pomocny

  • Postów:498
  • GG:
  • Steam:steam
  • Imię:Kamil
  • Lokalizacja:Kraków
Offline

Napisano 20.10.2010 16:02

skoro tak to albo zle sie polaczyles albo zle skonstruowane jest zapytanie sql

#9 Portek

    Kończymy zabawę, permanentna emerytura!

  • Przyjaciel

Reputacja: 976
Master

  • Postów:3 007
  • GG:
  • Steam:steam
  • Imię:Michał
  • Lokalizacja:Częstochowa
Offline

Napisano 20.10.2010 17:56

Albo błędne wykorzystanie mysqli? PHP: mysqli::query - Manual
  • +
  • -
  • 1

serwer-1.png
IP: ts3.cserwerek.pl





Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych