Probleme beim auslesen der DB

Fragen zur Installation von CONTENIDO 4.9? Probleme bei der Konfiguration? Hinweise oder Fragen zur Entwicklung des Systemes oder zur Sicherheit?
Antworten
derju
Beiträge: 301
Registriert: Do 15. Jan 2009, 09:00
Kontaktdaten:

Probleme beim auslesen der DB

Beitrag 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
Contenido 4.8.20 | Contenido 4.9.12
Zuschauer
Beiträge: 141
Registriert: Do 5. Dez 2013, 08:57
Kontaktdaten:

Re: Probleme beim auslesen der DB

Beitrag 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
derju
Beiträge: 301
Registriert: Do 15. Jan 2009, 09:00
Kontaktdaten:

Re: Probleme beim auslesen der DB

Beitrag von derju »

Hallo Zuschauer,

vielen Dank, der Abend ist gerettet!

LG - derju
Contenido 4.8.20 | Contenido 4.9.12
rethus
Beiträge: 1851
Registriert: Di 28. Mär 2006, 11:55
Wohnort: Mönchengladbach
Kontaktdaten:

Re: Probleme beim auslesen der DB

Beitrag 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
Could I help you... you can help me... buy me a coffee . (vielen ❤ Dank an: Seelauer, Peanut, fauxxami )

xstable.com: - HighSpeed Hosting, Domains, DomainReselling, Linux-Administration
suther.de: - App-Programierung, High-Performance-Webpages, MicroServices, API-Anbindungen & Erstellung

Software... ein Blick wert: GoogleCalender Eventlist, xst_dynamic_contentType
Antworten