Wieso funktioniert diese Funktion nicht?

Cyperfriend

Der ohne Avatar
Registriert
14 Juli 2013
Beiträge
1.123
Irgendwie stehe ich seit Tagen total auf dem Schlauch. Folgende Funktion funktioniert nicht, bzw. gibt immer "NULL" zurück.
[src=php]function db_connect()
{
$host = "****";
$user = "****";
$passwd = "****";
$db = "****";

$con = new mysqli($host, $user, $passwd, $db);

if ($con->connect_error){
die("Fehler: ".$con->connect_error);
}
return $db_connect;
}

$db_connect = db_connect();
var_dump($db_connect);[/src]

Wenn ich das Ganze so schreibe funktioniert es, aber dann ist es keine Funktion mehr
[src=php] $host = "****";
$user = "****";
$passwd = "****";
$db = "****";

$con = new mysqli($host, $user, $passwd, $db);

if ($con->connect_error){
die("Fehler: ".$con->connect_error);
}



$sql = "INSERT INTO db_benutzer (benutzername) VALUES ('Mustermann')";

if ($con->query($sql) === TRUE) {
echo ":-)";
} else {
echo "Error: " . $sql . "<br>" . $con->error;
}

$con->close();[/src]

Bin für Hilfe dankbar.
 
So sollte es gehen:

[src=php]
function connect_db() {
$host = '***';
$user = '***';
$passwort = '***';
$db = '***';
$con = mysqli_connect($host, $user, $passwort, $db);
mysqli_query ($con, 'SET NAMES \'utf8\'');
if (mysqli_connect_errno()) {
throw new Exception(mysqli_connect_error(), mysqli_connect_errno());
}
$GLOBALS['db'] = $con;
}
[/src]
 
"return $db_connect;" sollte doch "return $con;" sein, oder irre ich? aka wie soll da auch was anders als NULL rauskommen wenn "$db_connect" in der funktion gar nicht existiert.
 
Jupp, der Returnwert in der Funktion db_connect() ist $db_connect. Das ist aber eine noch bisher nicht verwendete Variable. Da man in PHP Variablen nicht deklarieren/definieren muss, bekommt diese logischerweise den Wert NULL.

An der Stelle müsste stattdessen stehen:
Code:
Expand Collapse Copy
return $con;
 
Benutz einen Editor der gleich geschriebene Wörter hervorhebt.
Notepad++ zum Beispiel. Das spart bei PHP eine Menge Ärger.
 
Zurück
Oben