• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Über PHP Klasse DB Ausgabe durchführen

_R_A_L_F_

Mitglied
Hallo,

ich möchte über eine Klasse mehrere Funktionen (Spalte1, Spalte2, usw.) integrieren und somit eine Ausgabe von DB Werten über die Klasse steuern.

Da ich aber noch nicht wirklich mit Klassen gearbeitet habe und ich im WWW auch nicht wirklich mit meinem Problem weiterkomme wollte ich fragen, was an dem Code hier falsch ist bzw. wie ich das ganze anstellen muss :)

class_db_ausgabe.php
PHP:
<?php
    class Ausgabe_DB
        {       
            function Spalte1($tabelle)
                {
                    // SQL String
                    public $sql = 'SELECT Id FROM '.$tabelle.' WHERE Id = 4';                   
                   
                    // ausführen des Mysql-Befehls
                    public $db_erg = mysql_query( $sql );
                    if ( ! $db_erg )
                        {
                            die('Ungültige Abfrage Eintr&auml;ge ausgeben: ' . mysql_error());
                        }
                       
                    public $daten = mysql_fetch_object($db_erg);
                               
                }
       
        }
 
?>

test.php
Code:
<!DOCTYPE html>
<html lang="de">
<head>
 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 
</head>
 
<body>
 
<?php
 
include('connect.php');
 
require_once('./php/class_db_ausgabe.php');
 
$test = NEW Ausgabe_DB();
$test->tabelle("tabelle1");
$test->Spalte1;
$test = $daten->Id;
 
// Hier sollte jetzt 4 drin stehen
echo $test;
 
?>
 
 
 
</body>
</html>
 
Debugging für PHP und Mysql einschalten.
Wo soll man da anfangen?
PHP:
$sql = 'SELECT Id FROM '.$tabelle.' WHERE Id = 4';
Sollte eigentlich so aussehen:
PHP:
$sql = 'SELECT `Id` FROM `'.$datenbank.'`.`'.$tabelle.'` WHERE `Id` = \'4\'';
$datenbank kann zwar entfallen, schadet aber nicht und hilft Fehler zu vermeiden.

Grundlagen für SQL-Anweisungen und PHP-Klassen nachlesen. Deine SQL-Anweisung wird mit phpmyadmin sicher auch nicht funktionieren.
Mach bei PHP Scripten zunächst ein echo auf $sql und kopiere das Ergebnis in phpmyadmin in den sql-Bereich. Dort siehst du dann auch Fehlermeldungen.
 
[...]du solltest stattdessen mysqli_... nutzen

Man sollte stattdessen lieber gleich PDO nutzen. Zum einen deshalb weil mysqli den Entwickler - beim reinem umschreiben der Befehle - nicht dazu zwingt, mit Prepared Statements zu arbeiten und andererseits die Konnektivität zu anderen Datenbanksystemen bereits gegeben ist, wenn und falls mal was anderes als MySQL benutzt werden sollte.

Grüße
 
Erstmal Danke für die Antworten.

Zu mysql_query: Das war nur ein Beispiel und ja, ich weiß das man mittlerweile mysqli oder besser sogar PDO benutzen sollte.

$sql = 'SELECT Id FROM '.$tabelle.' WHERE Id = 4'; -> liefert mir sehr wohl ein Ergebnis nämlich die Zahl 4 und wie gesagt es ist ja nur ein Beispiel das ich schnell zusammen geschrieben habe.

Danke an @newlord für die Links ;)

Was mich eher interessieren würde ist, warum ich den Fehler:
"Syntax Error, unexpected 'public' (T_PUBLIC) on Line 7
Also sprich die public $sql Zeile bekomme

Wie schreibe ich das richtig bzw. was muss ich ändern?

Grüße
 
Da durch den Festplattendefekt bei html.de mein heute früh geschriebener Beitrag hier verloren ging (aber lt. Admin derzeit an der Datenwiederherstellung gearbeitet wird) hier nochmal:

Den Fehler bekommst du weil du versuchst, Sichtbarkeiten wie public, private oder protected an Variablen innerhalb deiner Methoden zuzuweisen. Diese können jedoch nur an Methoden-Köpfe oder Member-Variablen einer Klasse vergeben werden. Siehe hier: http://php.net/manual/de/language.oop5.visibility.php

Grüße
 
Zurück
Oben