Datenbank Zugriff schlägt fehl

Guten Abend
und zwar habe ich ein Problem. Ich will eine Verbindung zur Datenbank aufbauen und dann auf diese Zugreifen. Doch leider schlägt das Script fehl bei $mysqli->real_escape_string($_POST['username'])
Ich habe es mal versucht mit Else und Echos etwas das einzugrenzen und da schlägt er genau bei der Zeile fehl.
Leider weiß ich nicht mehr weiter, wo der Fehler liegen könnte.

Hier mal n Ausschnitt von der “Problemzone”

[code]if (!empty($_POST))

			{
				if (empty($_POST['username']) || empty($_POST['password'])) 

					{
						$message['errors'] = 'Es wurden nicht alle Felder ausgefüllt.';
					}

					else 

						{

							echo "Test";
							$mysqli = @new mysqli($db_server, $db_username, $db_password, $db_name);

							if ($mysqli->connect_errors) 

								{ 
									echo "Test2";
									$message['errors'] = 'Datenbankverbindung fehlgeschlagen: ' . $mysqli->connect_errors;	
								}
								else

									{
										echo "Test 3";
										$query = sprintf(
															"SELECT username, password, userdeactivated FROM users WHERE username = '%s'",
															$mysqli->real_escape_string($_POST['username'])
														);

										$result = $mysqli->query($query);


										if ($row = $result->fetch_array(MYSQLI_ASSOC)) 

											{

												if (md5($_POST['password']) == $row['password']) 

													{[/code]

Der Fehlercode:

[code]TestTest 3
Warning: mysqli::real_escape_string() [mysqli.real-escape-string]: Couldn’t fetch mysqli in /users/asdf/www/index.php on line 46

Warning: mysqli::query() [mysqli.query]: Couldn’t fetch mysqli in /users/asdf/www/index.php on line 49

Fatal error: Call to a member function fetch_array() on a non-object in /users/asdf/www/index.php on line 52[/code]

Die Datenbankeinlogdaten, hol ich mit include aus einer anderen PHP Datei.

Ich hoffe ihr könnt mir da weiter helfen.

Kommt die Verbindung wirklich zustande? Entferne mal das @ dort wo du ein neues mysqli-Objekt erzeugst, das ist bei der Fehlersuche eher kontraproduktiv. Soweit ich das nachgelesen habe existiert ja auch „$mysqli->connect_errors“ nicht.

php.net/manual/de/book.mysqli.php

Mfg :wink2:

Dankeschön erstmal für den Tipp.
Also, wenigstens zeigt er mir nun eine brauchbare (?) Fehlermeldung an, habe jetzt dieses connect_errors zu connect_error geändert und dieses @ entfernt, nun speicherte er mir auch die Fehlermeldung in die Variabel, die dann ausgegeben wurde.
Dabei wurde das ausgegeben:

Access denied for user ‘bbs2whv’@‘localhost’ to database ‘users’

Das witzige ist ja, das es vorher alles funktionierte.

Noch mal Dankeschön für die Hilfe, ich hoffe damit kann nun was angefangen werden.

Gruß :wink:

Bitte beachte, dass bei bplaced Datenbank-Benutzer und Datenbank-Name gleich sein müssen!

So wie es aussieht hast du eventuell irgendwo Tabellename („users“) und Datenbankname vertauscht oder Ähnliches :wink:

Mfg :wink2:

Oh
schäm. Da lag das Problem :unamused:
Dankeschön für die schnelle Hilfe ! :wink: