Seite 1 von 1

Probleme beim auslesen der DB

Verfasst: Do 6. Nov 2014, 15:58
von derju
Hi ich habe folgendes Problem:

Ich versuche wie folgt was aus der DB auszulesen so klappt es nicht:

Code: Alles auswählen

$table = 'man_inserat_objekt';
$bilder = 'man_inserat_files';
$kat = 'FEWO';
$web = '1';

$cfg = cRegistry::getConfig();
$db = cRegistry::getDb();
$db->query('SELECT * FROM `' . $table . '` WHERE ob_angebotsart = '.$kat.' ORDER BY ob_sort ASC');
Wenn ich es so auslese funktioniert es:

Code: Alles auswählen

$table = 'man_inserat_objekt';
$bilder = 'man_inserat_files';

$cfg = cRegistry::getConfig();
$db = cRegistry::getDb();
$db->query('SELECT * FROM `' . $table . '` WHERE ob_web_start = 1 ORDER BY ob_sort ASC');
Kann es sein das man nur integer Werte verwenden kann?
Habt ihr mir hier einen Tipp?

LG - derju

Re: Probleme beim auslesen der DB

Verfasst: Do 6. Nov 2014, 18:20
von Zuschauer
Hallo derju,

Texte gehören auch in SQL-Anweisungen in Anführungszeichen:

Code: Alles auswählen

$table = 'man_inserat_objekt';
$bilder = 'man_inserat_files';
$kat = 'FEWO';
$web = '1';

$cfg = cRegistry::getConfig();
$db = cRegistry::getDb();
$db->query('SELECT * FROM `' . $table . '` WHERE ob_angebotsart = "'.$kat.'" ORDER BY ob_sort ASC');
Gruß
Zuschauer

Re: Probleme beim auslesen der DB

Verfasst: Do 6. Nov 2014, 20:31
von derju
Hallo Zuschauer,

vielen Dank, der Abend ist gerettet!

LG - derju

Re: Probleme beim auslesen der DB

Verfasst: Sa 6. Dez 2014, 13:42
von rethus
Anbei nur eine kleine Anregung für "besseren" Code:

Code: Alles auswählen

$debug = false;
$table = 'man_inserat_objekt';
$bilder = 'man_inserat_files';
$kat = 'FEWO';
$web = '1';

$cfg = cRegistry::getConfig();
$db = cRegistry::getDb();
$sql = $db->prepare('SELECT * FROM `%s` WHERE ob_angebotsart = "%d" ORDER BY ob_sort ASC');
if($debug) echo $sql;
$db->query($sql,$table,$kat);
Wichtig ist die Verwendung von Prepared-Statements, weil sie die Sicherheit (in Bezug auf SQL-Injections) minimiert wird. Es erleichtert aber auch das Debuging (wie man im obigen Beispiel sieht).

Weitere Infos zu "Prepared Statements' http://de.wikipedia.org/wiki/Prepared_Statement