Дават ли ми мода за това?
$sql = "UPDATE skills SET level = level+1 WHERE id = $id";
$result = $db->sql_query($sql);
$db->sql_freeresult($result);
В конкретния случай на Teifion, phpBB DDL изброява това конкретно поле като NOT NULL, така че няма опасност от увеличаване на NULL.
В общия случай не трябва да използвате NULL за представяне на нула. Увеличаване на NULL трябва дайте отговор NULL. Ако сте от типа заблуден разработчик, който мисли NULL=0, отдръпнете се от клавиатурата и си намерете друго забавление, вие просто затруднявате живота на останалите от нас. Разбира се, това е компютърната индустрия и кои сме ние, за да кажем, че грешите? Ако не грешите, използвайте
$sql = "UPDATE skills SET level = COALESCE(level,0)+1 WHERE id = $id";
...но нека си признаем:грешите. Ако всички започват от ниво 0, тогава вашият DDL трябва да включва
level INT DEFAULT '0' NOT NULL
в случай, че програмистите забравят да го зададат, когато създават запис. Ако не всички стартират на ниво 0, тогава пропуснете DEFAULT и принудете програмиста да предостави стойност при създаване. Ако някои хора са отвъд нивата, за които наличието на ниво е безсмислено нещо, тогава добавянето на едно към тяхното ниво също няма смисъл. В такъв случай махнете NOT NULL от DDL.