$rating = mysqli_real_escape_string($conn,$_POST['rating']);
$id = mysqli_real_escape_string($conn,$_POST['id']);
mysqli_query($conn,"UPDATE table SET $rating=$rating+1 WHERE id='$id'");
字符串
有什么方法可以更新基于PHP变量$rating
的列吗?$rating
是列名。
此外,这可能会带来安全风险等,所以我想知道这是否是一个很好的方法去做它。
3条答案
按热度按时间lyr7nygr1#
是的,你可以在SQL中使用变量名作为字段名。但是,在将其放入sql字符串之前,必须首先验证它。因为它不是一个字段值,你不能“引用”它。
字符串
nfzehxib2#
使用PDO验证列变量对我不起作用。我尝试了'$colname+1'场景周围括号的各种排列,但它们都给出了错误。最后,我选择了SELECTING当前值,递增它并将其放回。
字符串
我知道,这并不能准确地回答这个问题,可能会被视为“老派”,但它至少提供了一个合理简洁的解决方案,一旦“回声”和评论被删除。
ljo96ir53#
首先,你的sql是不正确的,因为我不认为变量可以是mysql中的列名。所以请在mysql数据库中检查你要更新的确切列。所以你的sql应该是这样的
字符串
如果评级不是您的列名,则将其更改为确切的列名。希望我帮上忙了。