Mă dau jos pentru asta?
$sql = "UPDATE skills SET level = level+1 WHERE id = $id";
$result = $db->sql_query($sql);
$db->sql_freeresult($result);
În cazul specific al lui Teifion, phpBB DDL listează acest câmp ca NU NULL, deci nu există pericolul creșterii NULL.
În general, nu trebuie să utilizați NULL pentru a reprezenta zero. Creșterea NULL trebuie să dea un răspuns NULL. Dacă sunteți un fel de dezvoltator greșit care crede NULL = 0, ieșiți departe de tastatură și găsiți o altă distracție, faceți doar greu pentru ceilalți. Bineînțeles, aceasta este industria de calculatoare și cine suntem să spunem că te înșeli? Dacă nu greșești, folosește
$sql = "UPDATE skills SET level = COALESCE(level,0)+1 WHERE id = $id";
... dar să recunoaștem: greșești. Dacă toată lumea începe la nivelul 0, atunci DDL ar trebui să includă
level INT DEFAULT '0' NOT NULL
în cazul în care programatorii uită să-l setați când creează o înregistrare. Dacă nu toată lumea pornește la nivelul 0, apoi sări peste DEFAULT și forțează programatorul să furnizeze o valoare la crearea. Dacă unii oameni sunt dincolo de nivele, pentru care un nivel este un lucru lipsit de sens, atunci adăugarea la nivelul lor nu are nici un sens. În acest caz, renunțați la NOT NULL din DDL.