PHP Could not select database Fehler nach umstellung auf PHP 7

Northrup

Newbie
Registriert
Mai 2019
Beiträge
2
Hi.

Nachdem vor kurzem mein Webserver auf PHP 7 umgestellt wurde habe ich Probleme mit einem der Scripte die ich benutze. Nach einer kurzen suche im Internet habe ich herausgefunden das MySQL veraltet ist und nun durch MySQLi ersetzt wurde. Einige der Fehlermeldungen konnte ich beheben indem ich einfach mysql_ mit mysqli_ in den entsprechenden .php-Dateien geändert habe.

Nun aber erscheint die Fehlermeldung Could not select database dbxxxxx - Check database name

Ich habe schon etwas im Internet recherchiert, komme aber nicht weiter da alle gezeigten Beispiele nicht mit meinem Script übereinstimmen. Hier mal ein Auszug:

index.php
Code:
<?php
    // read in the connection settings
    require("settings.inc.php");

    // connect to the RDBMS
    $db = mysqli_connect("$site","$user","$pass") 
        or die_now("<h2>Could not connect to database server</h2><p>Check passwords and sockets</p>");

    
// select the database
    mysqli_select_db("$database",$db) 
        or die_now("<h2>Could not select database $database</h2><p>Check database name</p>");

settings.inc.php
Code:
<?php
    $site = "xxxxx";
    $user = "xxxxx";
    $pass = "xxxxx";
    $database = "dbxxxxx";
?>

Ich hoffe hier kann mir jemand nen Tipp geben was ich ändern muss damit es wieder läuft!
 
die parameterreihenfolge beim Connect von mysqli ist anders
PHP:
mysqli_select_db ( mysqli $link , string $dbname )
Siehe https://www.php.net/manual/de/mysqli.select-db.php

Das meiste ist zwar gleich aber esgibt doch minimaale unterschiede bei den funktionen. Hier am besten alle einmal überprüffen.
 
  • Gefällt mir
Reaktionen: Northrup
Ah, vielen Dank!

Wie es aussieht muss ich jetzt nur noch die Reihenfolge in den querys ändern und ich hoffe dann geht alles wieder.


EDIT:
Einen fehler hab ich noch gefunden:
Wenn ich einen neuen Eintrag erstellen will bekomme ich folgenden Fehler: Could not echo most recent show
Code:
Code:
    // get the show_id for the previous insert query.  We'll need it 
    // so we can drag the entry back out    
    $last_show_id = mysqli_insert_id();

    // echo out the most recent addition, for error checking
    $result = mysqli_query($db,"select show_id, month, day, year, location, details, venue, artist 
        from $database_table where show_id = $last_show_id")
        or die_now("<h2>Could not echo most recent show</h2>");

Es funktioniert auch so, das heißt der Eintrag wird gespeichert, aber es wäre doch irgendwie nett wenn es so funktioniert wie es soll.
 
Zuletzt bearbeitet:
Bau es um das du statt
Code:
or  die_now( msg )
lieber
Code:
if (!$result) {
    die_now("Error during query: " . mysqli_error ($db));
}
verwendest so bekommst du den echten Fehler ausgegeben mit dem du besser debuggen kannst.
 
Zurück
Oben