Markus: Connect zu Strato / MYSQL? erzeugt Fehler..

Hallo Zusammen,

ich habe einen TestWebserver auf dem ich MySQL Version 5 und PHP5 nutze. Dort habe ich es auch hinbekommen

a.) auf die MySQL DB zu connecten
b.) Einträge der DB mittels PHP auf einer Webseite darstellen zu lassen
c.) Neue Einträge in die DB einzufügen.

Jetzt will ich dieses System auch mittels Strato und dessen MySQL System "Live" ausprobieren.

Ich kann mittels PHPmyAdmin auf die besagte Datenbank ( MySQL Version 5 )bei Strato zugreifen und dort mittels sql Code eintragen.

Das Problem was ich habe liegt darin, dass ich mittels PHP jedoch nicht auf die DB bei Strato connecten kann.

Hier mal der Code wie ich das bisher versuche :

<?php
// kurze Variablennamen erstellen
$wert1 = $_POST['wert1'];
$wert2 = $_POST['wert2'];
$wert3 = $_POST['wert3'];
$wert4 = $_POST['wert4'];
$wert5 = $_POST['wert5'];

if (!$wert1 || !$wert2 || !$wert3 || !$wert4 || !$wert5 ) {
echo 'Sie haben nicht alle notwendigen Details eingegeben.<br />'
. 'Bitte gehen Sie zurck und versuchen es noch einmal.';
exit;
}
if (!get_magic_quotes_gpc()) {
$wert1 = addslashes($wert1);
$wert2 = addslashes($wert2);
$wert3 = addslashes($wert3);
$wert4 = addslashes($wert4);
$wert5 = addslashes($wert4);
}

echo '1';

@ $db = new mysql_connect("rdbms.strato.de", "UXXXXXX", "*******");

echo '2';

$query = "use DB******";
if (!mysql_query($query, $db)) die("Datenbank existiert nicht. \n");

echo '3';

$query = "insert into Tablle values
('" . $wert1 . "', '" . $wert2 . "', '" . $wert3 . "', '" . $wert4 . "', '" . $wert5 . "')";

echo '4';

$result = $db->query($query);
if ($result)
echo $db->affected_rows . ' Eintrag erfolgreich in die Datenbank eingetragen.';

$db->close();

?>

die Echo 'Zahl'; ... usw dienen dazu um zu sehen wie weit das Script ausgeführt wird

er zeigt mir echo 1 bis 4
1234

dann kommt aber folgende fehlermeldung
Fatal error: Call to a member function on a non-object in /mnt/ja2/07/524/00000013/htdocs/Name/insert_Entry.php on line 53

Zeile 52 - 54 sind :

$result = $db->query($query);
if ($result)
echo $db->affected_rows . ' Werte erfolgreich in die Datenbank eingetragen.';

hat jemand einen Denkansatz wo ich wie und was auslesen bzw wo ich suchen kann um das zu lösen?

Gruß

CSSDummy

  1. hi,

    @ $db = new mysql_connect("rdbms.strato.de", "UXXXXXX", "*******");

    Hier unterdrückst du ja absichtlich eventuelle Fehler - hältst dz das bei der Fehlersuche für hilfreich?

    Ausserdem solltest du explizit bei der Datenbank nachfragen, was eventuell nicht geklappt hat - mysql_error (ggf. in deiner Klasse schon gekapselt).

    Fatal error: Call to a member function on a non-object in /mnt/ja2/07/524/00000013/htdocs/Name/insert_Entry.php on line 53

    Wenn $db kein gültiges Objekt enthält, kannst du auch auf keine Methoden davon zugreifen - logisch.

    gruß,
    wahsaga

    --
    /voodoo.css:
    #GeorgeWBush { position:absolute; bottom:-6ft; }
  2. echo $begrüßung;

    // kurze Variablennamen erstellen
    $wert1 = $_POST['wert1'];

    Das Umkopieren ist überflüssig. Du kannst genauso gut auch direkt auf $_POST['wert1'] usw. zugreifen. Tippfaulheit ist auch kein vernünftiges Argument, Scripte mit überflüssigen Variablen zu füllen.

    if (!get_magic_quotes_gpc()) {
    $wert1 = addslashes($wert1);

    addslashes() erzeugt ebensowenig wie Magic Quotes eine auf MySQL abgestimmte Maskierung. Verwende dafür mysql_real_escape_string() (bzw. das mysqli-Pendant dazu). Das Feature Magic Quotes deaktiviert man am besten generell oder macht seine Auswirkungen am Scriptanfang mit der Funktion aus dem Beispiel der verlinkten Seite rückgängig.

    @ $db = new mysql_connect("rdbms.strato.de", "UXXXXXX", "*******");

    Die mysql-Funktionen sind nicht objektorientiert. Wenn du mysqli verwenden willst, achte auf das i und schau dir nochmal im Handbuch an, wie die Funktionen zu verwenden sind.

    echo "$verabschiedung $name";