PHP Datenbankanbindung

Oetzicool

Erfahrenes Mitglied
Hey Leute ich habe da ein kleines Problem ich hab ein kleines Skript das Bilder in eine Datenbank einträgt dies habe ich gebaut und hat auch alles funktioniert. Dies war aber alles in einer Datei, aber der übersichtshalber und zur besseren hab ich gedacht teil ich des ganze auf aber nur funktioniert mein skript nicht mehr.
In meiner upload.php werden die functions.php wo die funktionen für den Upload sind und die config.php geladen wo die daten für die Datenbank stehen.
Des ding ist die verbindung wird in der Funktion Connect2DB() ja hergestellt aber die insert funktioniert nichtmehr und bringt mir den fehler 'No database selected' ich hoffe ihr könnt mir helfen:

upload.php
PHP:
include "config/config.php";
include "func/functions.php";

//Datenbankverbindung herstellen
connect2DB();
//Album anlegen
$albumid = insertAlbum($file[0]);

config.php
PHP:
// Verzeichnis in das das Fotoalben geladen werden
$pic_dir = "fotoserien/";
// DB Daten
$host = 'localhost';
$login = '';
$pass = '';
$database = '';

functions.php
PHP:
	function connect2DB()
	{
		$result = mysql_connect($host, $login, $pass);
		if (!$result) {
			die('Keine Verbindung möglich: ' . mysql_error());
		}
		echo "Datenbankverbindung hergestellt!";
		mysql_select_db('$database');
	}
	
	// Album in DB eintragen und Album ID zurückgeben
	function insertAlbum($albumname)
	{
		$result = mysql_query("INSERT INTO fotoalben (name) values ('".$albumname."')");
		if (!$result) {
			die('Fehler beim einfügen:'. mysql_error());
		}
		printf("Der zuletzt eingefügte Datensatz hat die ID %d\n", mysql_insert_id());
		return mysql_insert_id();
	}

Danke schonmal für eure hilfe ;)
 
Variablen in einfachen Anführungszeichen werden nicht interpretiert!

PHP:
    function connect2DB()
    {
        mysql_connect($host, $login, $pass) or die('Keine Verbindung möglich: ' . mysql_error());
        mysql_select_db($database) or die('Fehler beim Auswählen der Datenbank: ' . mysql_error());
    }
 
Also ich habe in der config.php jetzt die werte in "" gemacht aber des ding ist in der Funktion sind diese alle leer ich habe mir in der Connect2DB() mal die werte ausgeben lassen und die sind alle leer, woran kann das liegen?
 
PHP:
mysql_select_db('$database'); 
// ist falsch

mysql_select_db($database);
// ist richtig

mfg chmee
 
Des hab ich ja genauso...des ist nicht der fehler sondern das die Variablen $host,$login,$pass,$database alle leer sind in der Funktion
 
Übergib die Variablen mit dem Funktionsaufruf oder definiere sie als Global.
PHP:
// Funktionsaufruf mit Übergabe
function connect2DB($fhost,$flogin,$fpass,$fdatabase)
    {
        mysql_connect($fhost, $flogin, $fpass) or die('Keine Verbindung möglich: ' . mysql_error());
        mysql_select_db($fdatabase) or die('Fehler beim Auswählen der Datenbank: ' . mysql_error());
    } 

// oder global deklarieren
function connect2DB()
    {
        global $host,$login,$pass,$database;
        mysql_connect($host, $login, $pass) or die('Keine Verbindung möglich: ' . mysql_error());
        mysql_select_db($database) or die('Fehler beim Auswählen der Datenbank: ' . mysql_error());
    }  

// oder auch so
function connect2DB()
    {
        mysql_connect($GLOBALS["host"], $GLOBALS["login"], $GLOBALS["pass"]) or die('Keine Verbindung möglich: ' . mysql_error());
        mysql_select_db($GLOBALS["database"]) or die('Fehler beim Auswählen der Datenbank: ' . mysql_error());
    }
http://php.net/manual/de/language.variables.scope.php

mfg chmee
 
Zurück