Ich versuche, ein paar Spalten aus einer bestimmten SQL-Tabelle zu erhalten, erhalten, die wie folgt funktioniert:
Wie DB-Anschluss für meine Klasse/Funktion
<?php
include("config.php");
// SELECT DATABASE TO ECHO FROM
$sql = "SELECT * from GuildInformation";
// ECHO FROM THE ^SELECT
$data = $conn->query($sql);
foreach ($data as $row) {
// HERE IS SOME CODE WHICH DOES WORK
}
?>
^diese Methode funktioniert perfekt, jetzt will ich um eine Funktion erstellen:
<?php
include("config.php");
function SelectGuildInfo() {
// SELECT DATABASE TO ECHO FROM
$sql = "SELECT * from GuildInformation";
// ECHO FROM THE ^SELECT
$data = $conn->query($sql);
foreach ($data as $row) {
// HERE IS SOME CODE WHICH DOES WORK
}}
?>
wenn ich die Funktion SelectGuildInfo();
i rufen erhalten den folgenden Fehlercode:
Fatal error: Call to a member function query() on a non-object in /users/l4g/www/84732842323772/submit.php on line 12
Linie 12 ist: $data = $conn->query($sql);
Also, wenn ich include("config.php");
in meiner Funktion es wieder nicht funktioniert, aber ich möchte, dass die Datenbankverbindung außerhalb meiner Funktion sein, weil ich mehr als 1 für dieses Skript haben werden und nur 1 enthalten.
Außerdem bin ich zu dieser ganzen Sachen sehr neu und wollen eigentlich mit einer Klasse für meine Datenbankverbindung, um zu versuchen, damit ich mit diesem kam:
<?php
class dbConn{
protected static $db;
private function __construct(){
try{
self::$db = new PDO('mysql:host=localhost;dbname=NAME', 'USR', 'PWD');
self::$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
catch(PDOException $e){
echo "Connection Error: " .$e->getMessage();
}
}
public static function getConnection(){
if(!self::$db){
new dbConn();
}
return self::$db;
}
}
?>
Wie erhalte ich verwenden meine Klasse in meinem Skript, also muss ich nicht etwas für jede Funktion einschließen, die ich benutzen möchte ?!
Vielen Dank für Ihre Hilfe!
Nachdem nun diesen Code und es läuft perfekt gerade! :)
include("database.class.php");
$db = dbConn::getConnection();
function SelectGuildInfo($db)
Siehe http://stackoverflow.com/questions/12769982/reference-what-does-this-error-mean-in-php/12769983#12769983 – Fang
leider bin ich etwas neu dazu und verstehe nicht das meiste davon @ Fang aber danke – pbahmann1
Mysql-Klasse ist veraltet. Verwenden Sie mysqli oder PDO. Wie für die Fehlermeldung, es sagt Ihnen, dass $ Conn ist kein Objekt im Zusammenhang mit der Funktion – Fang