Disasterp1ece
Grünschnabel
Guten Tag!
Ich hab ein Problem. Bin ein Anfänger, bitte nicht gleich steinigen, wenn das alles noch etwas wirsch ist. Ich hab eine Funktion geschrieben, die verschiedene Dateien implementieren soll (siehe Anhang). Dies tut sie auch (angeblich Rückgabewert) nur wird mir dann leider diese Fehlermeldung ausgegeben:
Fatal error: Call to a member function query() on a non-object in xxx/functions.php on line 15
line15:
$con ist in mysql_connect.php definiert. Diese Datei wird mit meiner eigenen include-Funktion implementiert und sollte ab da an ja eigentlich verfügbar sein:
Ich dachte erst, dass irgendwelche Dateien nicht richtig includet werden, aber meine Funktion gibt dies aus:
constants.php implementiert.
1
mysql_user.php implementiert.
1
mysql_connect.php implementiert.
1
functions.php implementiert.
1
Ich habe sie so aufgerufen:
Und hier ist mal meine Funktion:
Bevor ich diese Funktion benutzt habe ging alles. Habe die Dateien einfach nacheinander mit include "..." implementiert.
Nur ich dachte mir, dass so etwas vielleicht von Vorteil sein könnte, wenn später diese Dateien nicht gebraucht werden.
Wenn die ganze Idee bescheuert ist oder falls ihr eine bessere habt lasst es mich bitte wissen. Wie gesagt ich lerne im Moment und freue mich über jeden Verbesserungsvorschlag
Ich hab ein Problem. Bin ein Anfänger, bitte nicht gleich steinigen, wenn das alles noch etwas wirsch ist. Ich hab eine Funktion geschrieben, die verschiedene Dateien implementieren soll (siehe Anhang). Dies tut sie auch (angeblich Rückgabewert) nur wird mir dann leider diese Fehlermeldung ausgegeben:
Fatal error: Call to a member function query() on a non-object in xxx/functions.php on line 15
line15:
Code:
$fetch_db = $con->query($select_sql)->fetch_assoc();
$con ist in mysql_connect.php definiert. Diese Datei wird mit meiner eigenen include-Funktion implementiert und sollte ab da an ja eigentlich verfügbar sein:
Code:
$con = new mysqli($host, $user, $pass, $db); // Verbindungsdaten sind in mysql_user.php
global $con;
Ich dachte erst, dass irgendwelche Dateien nicht richtig includet werden, aber meine Funktion gibt dies aus:
constants.php implementiert.
1
mysql_user.php implementiert.
1
mysql_connect.php implementiert.
1
functions.php implementiert.
1
Ich habe sie so aufgerufen:
Code:
include '../confidential/include.php';
include_data('constants', 'mysql_user', 'mysql_connect', 'functions');
Und hier ist mal meine Funktion:
Code:
<?php
function include_data($constants, $mysql_user, $mysql_connect, $functions)
{
// Funktion dient zur individuellen Implementierung von Dateien.
// $constants = 'constants' oder 'no_constants'
// $mysql_user = 'mysql_user' oder 'no_mysql_user'
// $mysql_connect = 'mysql_connect' oder 'no_mysql_connect'
// $functions = 'functions' oder 'no_functions'
// Konstanten
if($constants == 'constants')
{
$ret1 = include 'constants.php';
echo "constants.php implementiert."."<br>";
echo $ret1."<br>";
}
elseif($constants == 'no_constants')
{
// echo "constants.php nicht implementiert."."<br>";
}
// Mysql-Daten
if($mysql_user == 'mysql_user')
{
$ret2 = include 'mysql_user.php';
echo "mysql_user.php implementiert."."<br>";
echo $ret2."<br>";
}
elseif($mysql_user == 'no_mysql_user')
{
// echo "mysql_user.php nicht implementiert."."<br>";
}
// Mysql-Verbindung
if($mysql_connect == 'mysql_connect')
{
$ret3 = include 'mysql_connect.php';
echo "mysql_connect.php implementiert."."<br>";
echo $ret3."<br>";
}
elseif($mysql_connect == 'no_mysql_connect')
{
// echo "mysql_connect.php nicht implementiert."."<br>";
}
// Funktionen
if($functions == 'functions')
{
$ret4 = include 'functions.php';
echo "functions.php implementiert."."<br>";
echo $ret4."<br>";
}
elseif($functions == 'no_functions')
{
// echo "functions.php nicht implementiert."."<br>";
}
}
?>
Bevor ich diese Funktion benutzt habe ging alles. Habe die Dateien einfach nacheinander mit include "..." implementiert.
Nur ich dachte mir, dass so etwas vielleicht von Vorteil sein könnte, wenn später diese Dateien nicht gebraucht werden.
Wenn die ganze Idee bescheuert ist oder falls ihr eine bessere habt lasst es mich bitte wissen. Wie gesagt ich lerne im Moment und freue mich über jeden Verbesserungsvorschlag
