Thomas Luethi: prüfen ob eintrag vorhanden (SELECT)

Beitrag lesen

Hallo,

$sql = "SELECT interpreter FROM $table_interpreter WHERE interpreter = $_POST['interpreter']";
da in $_POST['interpreter'] vermutlich ein String steht musst du diesen Wert mit ' umschließen:
$sql = "[...] WHERE interpreter = '".$_POST['interpreter']."'";

Es sollte auch noch etwas einfacher gehen:

$sql = "[...] WHERE interpreter = '$_POST[interpreter' ";

$_POST[interpreter] //<----ohne hochkommas
das ist falsch: http://www.php.net/manual/de/language.types.array.php#language.types.array.foo-bar

Nein! Wenn es zwischen doppelten Anfuehrungszeichen steht, ist es legal:
http://www.php.net/manual/en/language.types.array.php#AEN3791

<ZITAT>
Note:  To reiterate, inside a double-quoted string, it's valid to not surround
array indexes with quotes so "$foo[bar]" is valid.
</ZITAT>

errorUnknown column 'test' in 'where clause'
das versteh ich jetzt aber auch nicht so ganz... was steht denn in $_POST['interpreter'] drin?

Vermutlich stand eben "test" drin, und die Query wurde dann zu:
"... WHERE interpreter = test ".

Deshalb ist es oft hilfreich, wenn man sich mal die _fertige_ Query
anzeigen laesst, die zu Problemen fuehrt, also:
print($sql);
Dann sieht das geuebte Auge z.B., dass da die Anfuehrungszeichen um
den String fehlen.

Gruesse,

Thomas