gpt4 book ai didi

php - 使用 CONCAT() 的日志 IP 地址的 MySQL 更新问题

转载 作者:行者123 更新时间:2023-12-01 00:50:29 32 4
gpt4 key购买 nike

我正在创建简单的星级评定系统,现在一切正常,但是当涉及到更新 IP 地址时,这让我现在很痛苦..

我已经使用这个查询创建了表

return 'CREATE TABLE star_ratings ('.
'id INT (11) NOT NULL AUTO_INCREMENT PRIMARY KEY,'.
'post_id INT (11),'.
'rating FLOAT (11) DEFAULT 0,'.
'total_rating FLOAT (11) DEFAULT 0,'.
'total_rates INT (11) DEFAULT 0,'.
'ipaddress LONGTEXT'.
');

检查图像中的 IP 地址列

enter image description here

现在尝试使用 CONCAT() 更新它,但它没有添加任何值。当我尝试在没有 CONCAT() 的情况下进行更新而不是更新值时进行调试。我只是想知道这是什么不起作用以及我哪里错了。

如果您在 ipaddress 列中注意到其他事情,我会变得很奇怪 ipaddress ::1 而不是 127.1.1.1

这是我的更新查询

UPDATE star_ratings 
SET rating = '$rating',
total_rating = '$total_rating',
total_rates = '$total_rates',
ipaddress = CONCAT(ipaddress, ',$ipaddress')

WHERE post_id = '$post_id'

最佳答案

也许当字段为空开始时附加 ipaddress 时更新失败,在这种情况下......

UPDATE star_ratings 
SET rating = '$rating',
total_rating = '$total_rating',
total_rates = '$total_rates',
ipaddress = CONCAT(ifnull(ipaddress,''), ',$ipaddress')

如果任何部分为 null(null 传播),concat 将返回 null,因此以下将产生 null

select concat(null, 'hello') 

ifnull() function将用第二个参数替换空的第一个参数

select ifnull(null,'hello') => 'hello'

select ifnull('hi','hello') => 'hi'

关于php - 使用 CONCAT() 的日志 IP 地址的 MySQL 更新问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16190326/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com