SQL abfrage mit Variable als WHERE Wert nicht

bandsite

Mitglied
Hallo Leute,
Ich habe eine MySQL Abfrage mit WHERE eingerichtet, leider wird die Variable nicht mit dem Wert in der Variable ersetzt, sprich es wird so behandelt als wäre die Variable leer.

Das Script:
Code:
<?php		session_start();
			$lang = "de";
			
			$_SESSION['host']	=	'localhost';
			$_SESSION['user']	=	'root';
			$_SESSION['pass']	=	'';
			$_SESSION['base']	=	'usr_web15_1';

			function getdata($host, $user, $pass, $base, $table)
			{
				mysql_connect($host, $user, $pass) or die ("No connection possible.");
				mysql_select_db($base) or die ("Database does not exist.");
			
				$get	=	"SELECT * FROM ".$table." WHERE lang = $lang";
				$got	=	mysql_query($get);
				$row	=	mysql_fetch_object($got);
				
				return $row;
			}

			$row = getdata($_SESSION['host'], $_SESSION['user'], $_SESSION['pass'], $_SESSION['base'], config);
			
			echo $_SESSION['sitetitle'] = $row->sitetitle;
?>

Folgende Schreibweisen des $get Strings habe ich schon ausprobiert:

$get = "SELECT * FROM ".$table." WHERE lang = '".$lang."'";
$get = 'SELECT * FROM '.$table.' WHERE lang = "'.$lang.'"';

Davon funktioniert nichts. Es gibt aber auch keine Fehlermeldungen, wenn ich mir $get ausgeben lasse fehlt einfach immer der $lang string.

$table wird richtig ersetzt.
Was mache ich falsch ?

Gruß und Danke, BS
 
Versuch mal
$get = "SELECT * FROM '".$table."' WHERE lang = '".$lang"'";

Ich würd sowieso den $get string gleich in den mysql_query() schreiben. So vermeidest zusätzliche Fehlermöglichkeiten.
 
Hi,
das funktioniert leider auch nicht, der $lang string wird noch nicht ersetzt und echo $get gibt das aus: SELECT * FROM 'config' WHERE lang = ''

config steht jetzt in Hochkommas., danke trotzdem =)
 
Nehme mal statt $lang ...$GLOBALS['lang']

Da du $lang global deklariert hast, ist es in der Funktion nicht ohne Weiteres bekannt.
Entweder du sprichst die Variable an wie beschrieben, oder machst sie eingangs der Funktion bekannt per global $lang
 
Falls $lang sich im Skript nicht mehr ändert, kannst du es ja auch als Konstante definieren... die sind auch ohne weitere Umstände in Funktionen bekannt ;)
 
Zurück