Ajouter 1 à un champ

Comment transformer les 2 requêtes suivantes en 1 requête

$sql    = 'SELECT level FROM skills WHERE id = $id LIMIT 1;';
$result = $db->sql_query($sql);
$level  = (int) $db->sql_fetchfield('level');
$db->sql_freeresult($result);

++$level;

$sql    = 'UPDATE skills SET level = $level WHERE id = $id;';
$result = $db->sql_query($sql);
$db->sql_freeresult($result);

Je l'utilise dans un mod phpBB mais l'essentiel est que je saisis le niveau, en ajoute un puis le mets à jour, il semble que ce serait beaucoup plus facile et plus rapide si je pouvais le faire en une seule requête.< /p>

Modifier : $id a déjà été forcé à être un nombre entier, donc aucun échappement n'est nécessaire cette fois.

请先 登录 后评论

4 réponses

Karl Seguin

essayez ceci

UPDATE skills SET level = level + 1 WHERE id = $id
请先 登录 后评论
Lasse Vågsæther Karlsen

Par ici :

UPDATE skills
SET level = level + 1
WHERE id = $id
请先 登录 后评论
Sean Carpenter

Que diriez-vous :

UPDATE skills SET level = level + 1 WHERE id = $id;
请先 登录 后评论
Josh

Mat : C'est ce qui ressort de la question. Il n'a pas été modifié, donc j'attribue cela à un bogue dans Markdown. Mais, curieusement, j'ai remarqué.

Aussi : oui, mysql_escape_string() !

请先 登录 后评论