Dies ist eine alte Version des Dokuments!
Dieses Kapitel soll häufige Fehler/Unsauberkeiten im Umgang mit Datenbanken in früheren Versionen von WB aufzeigen und auch gleich entsprechende Lösungen anbieten. Die beanstandeten Codefragmente sind nicht erfunden, sondern original aus WB und Modulen entnommen!
Es wird einfach anhand der `user_id` ein einzelner Datensatz in der Tabelle `users` gesucht
falsch
$query = $database->query("SELECT * FROM '.TABLE_PREFIX.'users WHERE user_id = $user_id LIMIT 1"); if ($query->numRows() > 0) { while ($user = $query->fetchRow()) { // all ok, do something with the data } }
Dieser Code enthält gleich mehrere Problemstellen und überflüssigen Code:
Nach den neuen Standards von WB korrigiert, ergibt sich dadurch folgendes richtige Codefragment:
$sql = 'SELECT * FROM `'.$oDb->TablePrefix.'users` ' . 'WHERE `user_id`='.$user_id; if (($oResult = $oDb->doQuery($sql))) { if (($aUser = $oResult->fetchArray())) { // all ok, do something with the data now } else { // no user record found } } else { // error on executing query }
… wird mit Auftauchen weiterer Beispiele kontinuierlich fortgesetzt!