Keine Verbindung zur Datenbank

Hallo zusammen,
ich bin ein Neuling mit MySQL und versuche gerdae eine Verbindung zu einer Datenbank herzustellen. Ich nutze XAMPP und phpmyadmin. Ich habe mit phpmyadmin einen Benuternamen erstellt, der ein Passwort hat. Des Weiteren wurde eine namensgleiche Datenbank erstellt, die noch keine Tabellen besitzt.

Nun habe ich folgenden PHP Code:
[PHP]

<?php $db = @new mysqli('localhost', 'MeinBenutzername', 'MeinPasswort', 'MeinBenutzername'); if(mysqli_connect_errno) die('Es konnte keine Verbindung hergestellt werden: '.mysqli_connect_error().' ('.mysqli_connect_errno().')'); else echo "Die Verbindung wurde erfolgreich hergestellt."; ?>

[/PHP]

MeinBenutzername ist der phpmyadmin Benutzername und da es eben eine gleichnamige Datenbank gibt, steht MeinBenutzername auch als letzer Parameter, der den Namen der Datenbank angibt.

Nun erhalte ich folgenden Fehler:
Es konnte keine Verbindung hergestellt werden: (0)

Warum kann keine Verbindung hergestellt werden? Was mache ich falsch? Kann mir jemand helfen?

Vielen Dank
lg, freakXHTML

[php]<?php

var_dump((bool) mysqli_connect_errno); // bool(true)[/php]

Beim Funktionsaufruf in deiner if-Bedingung fehlen die Klammern, was PHP dazu verleitet, mysqli_connect_errno als Konstantennamen anzunehmen, der jedoch nicht definiert ist, was PHP dazu verleitet, mysqli_connect_errno als String anzunehmen: ‚mysqli_connect_errno‘. Dieser String wird durch einen Typecast nach Boolean dann wiederum zu true, was der Wert ist, der in der if-Bedingung abgefragt wird.

Nutze error_reporting, um solche Fehler zu vermeiden:

[php]<?php

error_reporting(-1);

var_dump((bool) mysqli_connect_errno); // bool(true)[/php]

Hallo mermshaus,
vielen Dank für die Lösung. Dass ich an solchen blöden Flüchtigkeitsfehlern scheitere, kommt leider noch zu häufig vor. Naja, mir ist klar, dass mysqli_connect_errno eine Funktion ist und deswegen noch zwei Klammern gesetzt werden müssen.

Vielen Dank
lg, freakXHTML

Ich habe noch eine andere Frage, aber ich möchte dazu keinen neuen Thread erstellen. Warum wird „result“ ein Objekt? Dazu müsste doch erneut der Konstruktor aufgerufen werden?!
[PHP]
$db = @new mysqli(‚localhost‘, ‚Test‘, ‚1234‘, ‚test‘);
//…

$sql = ‚SELECT Titel, Datum FROM News‘;
$result = $db->query($sql);
if (!$result)
die(‚Etwas stimmt mit der SQL - Abfrage nicht‘.$db->error);
[/PHP]

Vielen Dank
lg, freakXHTML

query() gibt einfach ein (MySQLi_Result-)Objekt zurück.

Achso,
vielen Dank!

lg, freakXHTML