我有一个数据库, visitorCounter ,我希望每当有人访问该页面时都会添加一个新行。我获取了他们的IP,然后我检查他们的IP是否在数据绑定中没有一行。如果没有,我添加一个新行。
sess = tf.InteractiveSession()
z_pi_translation = tf.random_normal([100,20])
z_mu_translation = tf.random_normal([100,20,3])
id_translation = tf.argmax(z_pi_translation,1)
translations = z_mu_translation[:,id_translation,:]
sess.run(translations)
编辑:添加一行包含用户代码:
onStartCommand
访问者进入网站,用户在数据库中为空。但是当他登录时,它会保持为空。知道为什么吗?
答案 0 :(得分:2)
您应该将此作为一个声明。关键的想法是on duplicate key update
。
因此,为表添加一个唯一索引,以便数据库每个ip强制执行一行:
create unique index unq_visitorscounter_ip on visitorsCounter(ip);
然后,将值更新/插入为:
INSERT INTO visitorsCounter(ip, entries)
VALUES (ip, 1)
ON DUPLICATE KEY UPDATE entries = entries + 1;
除了简化代码之外,这是表达逻辑的更正确的方法。如果不同的应用程序/线程同时插入相同的ip
,则代码可能具有竞争条件。
答案 1 :(得分:0)
我认为你永远不会进入"更新" if语句是您不应该检查null
,而是检查false
值。
根据{{3}}的文档,您将在失败时返回false
。
所以你的代码应该用
更好地工作if($result !=== false) {
...
}