Wieso funktioniert der SQL-Code nur auf Localhost?
Das Jak
- datenbank
Aloha,
ich die den heutigen Tag damit verbracht SQL zu lernen und mir dafür
das Tutorial von Quakenet zur Hilfe genommen.
Ich habe alles nachgetippt und ausprobiert, was auch immer funktioniert hat, und zum Schluss habe ich mal was eigenes probiert.
Ich habe eine erfolgreich eine Tabelle erstellt mit dem Titel von Filmen und einer Note (ähnlich IMDB).
Ich habe mit XAMPP Webspace und SQL-Server simuliert und in Eclipse den Code geschrieben. Wenn ich in Eclipse sage er soll mir die Seite darstellen, funktioniert auch alles und ich bekomme eine Tabelle mit den Filmen und der Note.
Dann habe ich die Dateien auf meinen Webspace hochgeladen und ausprobiert und das Ergebnis war eine leere, weiße Seite (natürlich habe ich vorher localhost, name, pw usw. geändert). Dann fing ich vor ein paar Stunden an das Problem zu googeln, den code mehrmals umzuschreiben, mehrmaliges hochladen auf den Webspace usw. und trotzdem funktioniert es nur auf Localhost.
Die Tabelle Filmrating mit Inhalten besteht in der Webspace-Datenbank.
Die Daten (Host, Name, Passwort und Datenbankname) sind in meiner
Datei richtig geschrieben und ein "Konnte keine Verbindung zur Datenbank aufbauen." erscheint ja auch nicht.
Könnt ihr mir helfen?
<?php
$db = @new mysqli('xxx.1und1.de', 'xxx', 'pwundso', 'dbname');
//$db = @new mysqli('localhost', 'root', '', 'test');
if (mysqli_connect_errno()) {
die ('Konnte keine Verbindung zur Datenbank aufbauen: '.mysqli_connect_error().'('.mysqli_connect_errno().')');
}
$sql = "SELECT * FROM `filmrating`";
$result = $db->query($sql);
if (!$result) {
die ('Etwas stimmte mit dem Query nicht: '.$db->error);
}
echo 'Die Ergebnistabelle besitzt '.$result->num_rows." Datensätze<br />\n";
?>
<table border=1>
<tr>
<td>Note</td>
<td>Titel</td>
</tr>
<?php
while ($row = $result->fetch_assoc()) { // NULL ist äquivalent zu false
// $row ist nun das Array mit den Werten
echo '<tr><td> "'.$row['Note'].'" </td>
<td> "'.$row['Film']."\" </td></tr>";
}
$result->close();
unset($result); // und referenz zum objekt löschen, brauchen wir ja nicht mehr...
?>
Danke vorab und einen schönen Abend,
Jascha
Moin!
Die Tabelle Filmrating mit Inhalten besteht in der Webspace-Datenbank.
Die Daten (Host, Name, Passwort und Datenbankname) sind in meiner
Datei richtig geschrieben und ein "Konnte keine Verbindung zur Datenbank aufbauen." erscheint ja auch nicht.Könnt ihr mir helfen?
Ja: Nimm alle @-Zeichen aus dem Code raus, die verhindern, dass Fehler ausgegeben werden.
Wenn beispielsweise mysqli auf deinem Webserver nicht existiert, weil noch eine veraltete PHP-Version benutzt wird, scheitert dein Skript in der ersten Zeile, ohne eine Meldung auszugeben, und ohne danach weiterlaufen zu können.
<?php
$db = @new mysqli('xxx.1und1.de', 'xxx', 'pwundso', 'dbname');
- Sven Rautenberg
Wenn beispielsweise mysqli auf deinem Webserver nicht existiert, weil noch eine veraltete PHP-Version benutzt wird, scheitert dein Skript in der ersten Zeile, ohne eine Meldung auszugeben, und ohne danach weiterlaufen zu können.
Sowas Blödes. Mysqli wird tatsächlich nicht unterstützt.
Gerade gelesen, die Alternative ist einfach mysql.
Natürlich habe ich schnell ausprobiert, ob ich einfach nur das i am Ende wegnehmen muss. Hat, wie erwartet, nicht geklappt.
Gibt es bei mysql einfach einen anderen Befehl für
$db = new mysqli();
oder muss ich mir nun ein neues Tutorial suchen?
Danke dir erstmal für die schnelle Antwort!
Hi Das!
Gibt es bei mysql einfach einen anderen Befehl für
$db = new mysqli();
oder muss ich mir nun ein neues Tutorial suchen?
Soweit ich weiß, kannst du bei 1und1 je nach Paket PHP 4 _und_ PHP 5 nutzen.
Informationen dazu findest du im Hilfecenter.
MfG H☼psel
Hello,
Soweit ich weiß, kannst du bei 1und1 je nach Paket PHP 4 _und_ PHP 5 nutzen.
Informationen dazu findest du im Hilfecenter.
Jau, wenn man nichts umkonfigurieren will, einfach die Endung *.php5 an die Files hängen anstelle von *.php
Und dann würde ich erstmal die phpinfo() aufrufen an Jaschas Stelle
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg
Soweit ich weiß, kannst du bei 1und1 je nach Paket PHP 4 _und_ PHP 5 nutzen.
Informationen dazu findest du im Hilfecenter.
Das war ja mal sehr interessant auf der 1&1 Seite einzuloggen.
Ich habe den Account dort schon seit 2003 und mir damals einfach
die FTP und SQL Zugangsdaten auf einen Zettel geschrieben,
somit brauchte ich die 1&1 Seite nicht mehr.
Nun habe ich gesehen was für neue Pakete angeboten werden und
das mein Paket dabei gar nicht aufgelistet war.
Für das selbe Geld kriegt man jetzt schon einiges mehr.
Wird Zeit zu wechseln :-)
Jau, wenn man nichts umkonfigurieren will, einfach die Endung *.php5 an die Files hängen anstelle von *.php
Und dann würde ich erstmal die phpinfo() aufrufen an Jaschas Stelle
Getan und funktioniert!
Vielen Dank euch allen für die Hilfe.
(selten so schnelle Antworten bekommen)
Gruß,
Jascha Klickermann