Antworten auf deine Fragen:
Neues Thema erstellen

Probleme mit MySQL

Poki29

Ps-ler ;-)

Hallo,

ich hab vor einiger Zeit angefangen Php zu erlernen. Die LernDVD ist auf MySQL 5.1 und PhP 5.3 ausgelegt.

Ich habe jetzt mein erstes Script geschrieben und das läuft unter Xampp auch wunderbar. Jetzt will ich es natürlich auch online nutzen, aber leider gibt es da ein Problem.

Sobald Mysql ins Spiel kommt passiert nichts mehr, d.h. ich habe eine weiße Seite. Mein Hoster ist 1und1 (da läuft MySQL 5.0). Ich poste mal einfach etwas Code vielleicht kann mir jmd helfen(Datenbankname, user und Pw sind verändert).

Code:
<html>
<head>
<title>PGMS Verwaltung Galerie1</title>
</head>
<body>
<?php 
    $server = 'dbXXXX.1und1.de';
    $benutzer = 'dboXXXXXXX';
    $passwort = 'XXXXXXXX';
    $datenbank = 'dbXXXXXXXXX';
        
    $verbindung = @mysqli_connect($server, $benutzer, $passwort);
    
    echo "<h2>Verwaltung</h2><a href='main.php'>zurück</a><hr/>" ;
    echo '<p>Verbindungsaufbau zu SQL gestartet:</p>';
    
    
    if ($verbindung){
        mysqli_select_db($verbindung, $datenbank);
        
        if(mysqli_error($verbindung)){
            echo 'Fehler beim Verbinden zur Datenbank.<br/>';
        }else{
            //Verbindung hergestellt
            echo '<b>Verbindung erfolgreich hergestellt.</b><br/>';
            
            echo '<hr/>';

         //Hier folgt dann eine Ausgabe der Tablleninhalte mittels

            $sql = "SELECT * FROM galerie1";
            $abfrage = mysqli_query($verbindung, $sql);
mfg Poki :-(
P.S. es wird keine der Fehlermeldungen ausgegeben
 

GrafiKman

Aktives Mitglied

AW: Probleme mit MySQL

$verbindung = mysq_connect($server, $benutzer, $passwort);
if (!$verbindung) {
die('Konnte nicht hergestellt werden
: ' . mysql_error());
}

Wenn du @ zeichen vor die funktion schreibst können auch keine fehler angezeigt werden
 

Poki29

Ps-ler ;-)

AW: Probleme mit MySQL

Danke, hätte ich auch selber drauf kommen können.

Folgenden Error hab ich jetzt:

Fatal error: Call to undefined function: mysqli_connect() in /homepages/25/d39520351/htdocs/pgms/verwaltung_g1.php on line 14
 

Poki29

Ps-ler ;-)

AW: Probleme mit MySQL

Das geht jetzt, heißt das im Klartext, dass ich unter MySql 5.0 keine msqli_ Befehle benutzen kann?
 

saila

Moderatorle

AW: Probleme mit MySQL

Das geht jetzt, heißt das im Klartext, dass ich unter MySql 5.0 keine msqli_ Befehle benutzen kann?

Nein, natürlich kannst du mit mysqli arbeiten. Die Frage ist nur, wie du deinen Connect aufbaust. Das ganze Thema dazu gibt es auch unter PHP: Mysqli - Manual. Ich gehe mal schwer davon aus, dass nach etwas einlesen in die Thematik dein ursprüngliches Vorhaben auch korrekt arbeiten wird ;)
 

netbandit

Aktives Mitglied

AW: Probleme mit MySQL

Setzt aber auch vorraus, daß PHP>=5 im Paket von 1und1 läuft. Im ersten Posting steht nur was von MySql 5 ;)
 

saila

Moderatorle

AW: Probleme mit MySQL

Setzt aber auch vorraus, daß PHP>=5 im Paket von 1und1 läuft. Im ersten Posting steht nur was von MySql 5 ;)

Bei 1und1 läuft auch PHP>=5 und wenn nicht, gibt es in der Hilfe einen Hinweis, wie dies über .htaccess gelöst werden kann. Das sind soviel ich weis bei 1und1 2 Zeilen, welche in die .htaccess müssen.
 

saila

Moderatorle

AW: Probleme mit MySQL

normaler weise muss sowas in der php.ini eingetragen werden
Normalerweise auch nicht, wenn z.B. mehrere Versionen vorhanden sind, so kann man diese je nach wunsch .htaccess ansteuern. Man kann ja auch z.B. bei xampp die Version wechseln :) Und dann ist es wieder in der jeweiligen Version auch benannt ;)
 

Dragor

Nicht mehr ganz neu hier

AW: Probleme mit MySQL

ja weil es bei xampp schon integriert ist, wenn es auf dem webserver noch nicht "includet" wird, kannste dies auch nicht ansteuern ;-)
 

saila

Moderatorle

AW: Probleme mit MySQL

ja weil es bei xampp schon integriert ist, wenn es auf dem webserver noch nicht "includet" wird, kannste dies auch nicht ansteuern ;-)
Das mag vielleicht so sein - ist es aber nicht, weil xampp immer 4 und 5 z.B. liefert (sofern dies nicht schon geändert wurde auf 5.x mit switch zu 5.y).

Bei 1und1 sind bis auf die neueste Version (weil Bugy) alle Versionen ansteuerbar. Also auch 5.2.x oder 5.1.x oder 5.0..x - oder was auch immer.
 

Dragor

Nicht mehr ganz neu hier

AW: Probleme mit MySQL

in der configer datei muss folgendes stehen

--with-mysqli

wenn das nicht drin steht bringt dir das unterschiedliche ansteuern von php/mysql auch nichts ;-)
 

saila

Moderatorle

AW: Probleme mit MySQL

in der configer datei muss folgendes stehen

--with-mysqli

wenn das nicht drin steht bringt dir das unterschiedliche ansteuern von php/mysql auch nichts ;-)

Dann nenn mir mal bitte ein Anbieter, welcher ein mysql-Paket ohne mysqli-Version anbietet? Das ist nonsens³. mysqli ist bereits ab Verson 4 von Seiten mysql als Erweiterung enthalten und wird in Version 5 und 6 ebenfalls enthalten sein.
In php ist es ebenfalls bei jeder php-Version standardmässig enthalten.

und hier für die .htaccess bei 1und1:
Code:
AddType x-mapp-php5 .php[FONT=monospace]
[/FONT]AddHandler x-mapp-php5 .php
 

hellemon

Hat es drauf

AW: Probleme mit MySQL

Hallo Poki29,

hier noch ein paar Tipp für die Zukunft, habe mal gelernt das man in jedes PHP Script folgenden Code am Anfang einer Seite einfügen soll um Fehler angezeigt zu bekommen.

PHP:
<?php

     if (!isset($_GET['action'])) $_GET['action']="";
     ini_set ("display_errors", 1); error_reporting(E_ALL ^ E_NOTICE);
?>
Datenbankverbindungen lagerst du grundsätzlich in eine externe Datei aus und includest diese in dein PHP Script (z.B. connect.inc.php)

PHP:
<?php

     if (!isset($_GET['action'])) $_GET['action']="";
     ini_set ("display_errors", 1); error_reporting(E_ALL ^ E_NOTICE);
/* 
  Allgemeine Daten fuer die Datenbankanbindung und direkter Connect zur Datenbank. Nach
  Einbindung dieses Segments kann direkt mit MySQL-Befehlen auf die Datenbank zugegriffen
  werden.
*/

// Datenbankserver
    $db_server = "localhost";
    
// Datenbankuser
    $db_user = "root";
      
// Datenbankpasswort
    $db_password = "P@$$w0rd";
      
// Datenbankname
    $db_name = "DB_Name";
      
// Datenbanktabelle
    $tbl_name = "Tabellen_Name";
             
// Verbindung zum Datenbankserver herstellen
    $cnx = @mysql_connect($db_server, $db_user, $db_password) OR die ($cnx_msg);
    
// Verbindung zur Datenbank herstellen        
    @mysql_select_db($db_name, $cnx) OR die ($db_msg);     
    
?>
PHP Variabeln bzw. Fehlermeldungen die als Variable angesprochen werden lagerst du ebenfalls in eine externe Datei aus und includest auch diese in dein PHP Script. (z.B var.inc.php)

PHP:
<?php

    if (!isset($_GET['action'])) $_GET['action']="";
    ini_set ("display_errors", 1); error_reporting(E_ALL ^ E_NOTICE);
  
//  Variabeln für Fehlermeldungen, Titel von Webseiten, Überschriften, Textfeldnamen und Buttonbezeichnungen
  
  $cnx_msg        = "Der Verbindungsaufbau mit dem Datenbank Server " . $db_server . " ist fehlgeschlagen"; // mysql_connect Fehlermeldung
  $db_msg         = "Der Verbindungsaufbau mit der Datenbank " . $db_name . " ist fehlgeschlagen"; // mysql_select_db Fehlermeldung
  $tbl_msg        = "Die MySql-Abfrage konnte nicht ausgeführt werden"; // mysql_query Fehlermeldung
  $result_msg     = "Zu dieser MySql-Abfrage wurden keine Ergebnisse gefunden"; // mysql_num_rows Fehlermeldung
  
//  $insert_msg     = "Der Eintrag konnte nicht gespeichert werden"; // Beispiel für einen Datenbank Eintrag
//  $update_msg     = "Die &Auml;nderung konnte nicht gespeichert werden"; // Beispiel für ein Update von einen Datenbankeintrag
//  $del_msg        = "Der Eintrag konnte nicht gel&ouml;scht werden"; // Beispiel für eine Lösch Aktion von einen Datenbankeintrag
//  $del_msg2       = "L&ouml;schen nicht m&ouml;glich, letzter Eintrag erreicht"; 
  
//  $edit_save_msg  = "Der Eintrag wurde zwischenzeitlich gel&ouml;scht";
 
  $title_msg      = "Datenbankabfrage"; // Titel von der Webseite
  
  $fld_1          = "1. Textfeldbezeichnung";
  $fld_2          = "2. Textfeldbezeichnung";
  
  $hdl_msg        = "&Uuml;berschrift"; // Überschrift von einer Webseite
  
  $btn_submit     = "Speichern"; // Submit Butten Name
  $btn_reset      = "Zur&uuml;cksetzen"; // Reset Button Name
  
?>
und zu guter letzt verfährst du auch so bei MySql Abfrage Variablen (z.B. mysql.inc.php)

PHP:
<?php

     if (!isset($_GET['action'])) $_GET['action']="";
     ini_set ("display_errors", 1); error_reporting(E_ALL ^ E_NOTICE);

/* 
    Die Funktion mysql_connect() liefert als Ergebnis eine ID-Nummer von 
    der Datenbank zurück, wenn die Vebindungsaufnahme erfolgreich war.
    $cnx = @mysql_connect($db_server, $db_user, $db_password)
      OR die($cnx_msg);
*/
    $cnx = @mysql_connect($db_server, $db_user, $db_password)
      OR die("Der Verbindungsaufbau mit dem Datenbank Server " . $db_server . " ist fehlgeschlagen");

            
/*
    Die Funktion mysql_select_db() stellt die Verbindung zur Datenbank her,
    mysql_select_db() benötigt zwei Parameter <database> und <connection>.
    @mysql_select_db($db_name, $cnx)
      OR die($db_msg);
*/            
    @mysql_select_db($db_name, $cnx)
      OR die("Der Verbindungsaufbau mit der Datenbank " . $db_name . " ist fehlgeschlagen");
      
              
/*
    Mit der Funktion mysql_query(), gekoppelt mit einer SQL-Anweisung, 
    wird die eigentliche Datenbankabfrage gestartet. Der Rückgabewert liefert das Ergebnis
    und diese Ergebnis wird in eine Variablen gespeichert.            
*/    
    $result = "SELECT * FROM <Datenbanktabelle>";
      if(!$result) {
        die("Die MySql-Abfrage konnte nicht ausgeführt werden");
      }        
/*
    Die Funktion mysql_num_rows() ermittelt die Anzahl der abgefragten Datensätze, 
    deren Rückgabewert ebenfalls in eine Variablen gespeichert wird
*/  
    $rows = mysql_num_rows($result);
      if ($rows == 0) {
        echo $result_msg;
    } else {
        bastel mir eine HTML Tabelle()
    }         
     
/*
    Die Funktion mysql_fetch_array() übergibt die ermittelten Werte 
    in ein Array,dieses Array kann wiederum mit einer 
    while($row = mysql_fetch_array($result)) Schleife abgefragt werden.
*/ 
    $neuVariable = array();
      while($row = mysql_fetch_array($result)) {
        $neuVariable[] = $row['<spaltenname>'];
      }
          echo $neuVariable[1] . "<br />\n";  
     
?>
warum diese Vorgehensweise? Funktionalität und Design wird immer getrennt aufgebaut, um so weniger Schwierigkeiten hast du später wenn sich was ändert, dann musst du es nur immer an ein oder zwei Stellen ändern und nicht immer Überall

viele Grüße

hellemon
 
Zuletzt bearbeitet:

saila

Moderatorle

AW: Probleme mit MySQL

Hi @,

also Grundsätzlich bleibt (und das ist auch so von php gewollt) jedem selbst überlassen, wie er seine Scripte aufbaut. Ob php von html getrennt oder nicht - ist jedem seine eigene Sache.

Und zu den Grundsätzlichen Hinweisen von dir, auch dass ist jedem seine eigene Sache. Grundsätzliches gibt es nicht bei php (ausser wenn es um php selbst sich handelt) und das zum guten Glück für viele Laien auf diesem Gebiet. Ansonsten würden wir uns über Java unterhalten oder den sogenannten höheren Programmiersprachen. Bei diesen ist z.B. grundsätzliches absolut notwendig, da ansonsten in diesen höheren Sprachen nichts laufen würde.

Wobei ich dir allerdings doppeltfettunterstrichen dir recht gebe ist das sogenannte Error-Reporting. Oder auch wie von mir genutzt - x-debug. Aber man sollte es grundsätzlich unterlassen, anderen Grundsätzliches aufschwatzen zu wollen, was nicht grundsätzlich so ist ;) :muede:

Und wenn du schon von auslagern und DB-Methoden und striktem Trennen von Apps-Code und Layout sprichst, dann wäre zumindest ein Tipp, auf das Objektorientierte Programmieren (OOP) schön gewesen als solch langen Code zu mitzuteilen. Aber nein - man muss ja gleich mit einem nicht von Hand zu tragenden Paket in die Tür fallen. Kleinere Pakete sind in der Regel hilfreicher als ein Totschläger ;) :muede:
 

Dragor

Nicht mehr ganz neu hier

AW: Probleme mit MySQL

ob mysqli mit im paket ist oder nicht spielt doch gar keine rolle wenn es beim installieren nicht mit compiliert wird Oo
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
118.614
Beiträge
1.538.351
Mitglieder
67.525
Neuestes Mitglied
mgtaucher
Oben