Fehler....No database selected --mysqli_fetch_assoc() expects parameter 1...


  • Hallo,


    ich habe das Problem dass es mir nicht gelingt bei Xampp mit mysqli eine Verbindung zur Datenbank aufzubauen.
    Der gleiche Quellcode aber auf einem Server eines Anbieters wird aber richtig dargestellt.
    Auf meinem rechner unter localhost wird es so dargestellt.
    "Fehler....No database selected


    Warning: mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, boolean given in C:\xampp\htdocs\testdatenbankverbidung.php on line 46"


    so beim Anbieter:
    Array
    (
    [name] => Rose
    [art] => Blume
    )
    Mit

    PHP
    $link=mysqli_connect("localhost","","","verbindungstest");


    klappt es auch nicht.


    Hilfe wäre richtig gut. Liegt es an MySQL Rechte. So wie ich es gesehen habe sind alle Rechte vergeben.
    Bin Hilflos.

    PHP
    $zahl = mysqli_fetch_assoc($ergebnis);


    ist Zeile 46

  • Lösung gefunden für Anfäger die das gleiche bei xampp/mysql haben. (Bei mysqli root als Benutzername angeben.)



    Sag mal wenn Ihr euer Lehrer fragt sagt er wohl "lese doch im Buch oder google doch" und dem fällt es auch schwer die Fragen zu verstehen.
    Man muß sich auch mal die Zeit nehmen dies durchzulesen.
    Ansonsten kann man ein Forum auch schließen.


    Ihr seid Profis ich nicht und habe nun nach Stunden suchen und probieren (Man versteht auch die Doko als Anfäher nicht, da soll ja ein Forum helfen) die einfache Lösung.
    Im gegensatz zu mysql muß wohl bei mysqli der Benutzername root sein. Schade das Sie mir das nicht einfach gleich schreiben konntet. :|

  • Ich hatte das Problem früher auf meinem WIN auch, mli_select_db() hat immer dagegen geholfen.
    Deswegen habe ich auch auf dieser Antwort beharrt.
    Ob ich Google fragst oder Du Google fragst macht wohl keinen Unterschied oder?
    Prinzipiell bin ich auf UNIX-systemen unterwegs und habe deshalb standardmäßig einen Localhost (bedeutet ich benutze kein Xamp) und kann deinen Fehler deshalb nicht nachvollziehen. Woher sollte ich wissen wo der Fehler liegt.. mehr als meine Erfahrung mit xampp habe ich auchnicht und die sagte mir nun eben dass mli_select_db() das ist, wass dir hilft.

  • Lösung gefunden für Anfäger die das gleiche bei xampp/mysql haben. (Bei mysqli root als Benutzername angeben.)


    Falsch. Und für den ein oder anderen -- der das versucht/so weiter gibt -- in bestimmten Situationen auch noch gefährlich.


    Du hast hier eine (eigtl nicht-)Lösung geschrieben die gar nicht zum eigtl Problem gehört/passt.
    Mit Benutzername "root" tauscht du einfach nur den Benutzer und desse Rechte (root ^= alle Rechte).
    Das hat aber mit einer nicht ausgewählten Datenbank nix zu tun.


    Die Lösung kam schon von wolf. Es liegt einfach daran, dass beim Verbinden keine Datenbank ausgewählt wurde.
    Wenn Du dann sofort nach dem Verbinden eine Abfrage feuerst wie zB

    SQL
    SELECT * FROM tabellenname;


    dann weiß der SQL-Server nicht in welcher db er suchen soll.
    Richtig wäre entweder

    SQL
    SELECT * FROM datenbankname.tabellenname;


    oder

    SQL
    USE datenbankname; -- dem sql-server mitteilen, dass wir die db soundso nutzen wollen
    SELECT * FROM tabellenname;


    oder (wie wolf schrieb) die jeweilige PHP-Funktion nutzen (zB mysqli_select_db(...))
    oder gleich beim Verbinden die db angeben, die ausgewählt werden soll.


    Was davon mach am meisten Sinn:
    Letzeres. Denn die Verbindung musst Du auf jeden Fall herstellen (1 mal daten zum SQL-Server senden).
    Wenn Du die db dabei gleich mitschickst, sparst Du Dir eine Anfrage/Übertragung/Reaktionszeit usw.


    BTW: Dein Bsp mit "google doch" passt mMn nicht ganz. Warum sollte man etwas was hier im gleichen Forum vom evtl gleichen Benutzer geschrieben wurde,
    warum sollte man das nochmal schreiben?
    =)

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!