【发布时间】:2009-07-24 21:40:56
【问题描述】:
我正在尝试通过将表中的整数值增加 1 来更新表中的字段。这是我正在使用的:
function updateViews($id){
$sql = "UPDATE tweets SET tweet_views = tweet_views + 1 WHERE tweet_key = '$id'";
$result = mysql_query($sql) or die("DB Error : ". mysql_error());
return $result;
}
但是,我发现它每次递增 2 而不是 1?我做错了什么?
谢谢
更新
从答案来看,SQL 是正确的。你认为这可能会受到重写引擎的影响???我问是因为我 100% 确定这不会运行两次,或者我没有拨打电话,因为有两个脚本。一个调用函数,一个保存函数!这令人困惑。
更新 2
使用调试功能。我得到这个输出:
array(4) {
["file"]=>
string(35) "/home/magic/public_html/dbUpdate.php"
["line"]=>
int(16)
["function"]=>
string(15) "myDebugFunction"
["args"]=>
array(0) {
}
}
array(4) {
["file"]=>
string(31) "/home/magic/public_html/view.php"
["line"]=>
int(10)
["function"]=>
string(11) "updateViews"
["args"]=>
array(1) {
[0]=>
&string(5) "7jjdd"
}
}
看起来好像脚本被调用了一次,但它仍然被更新了两次???帮助! :(
同样从日志文件来看,脚本好像被调用了 3 次??
13:16:28 id:4a6c9d7cf38016.29304000
_SERVER[REQUEST_URI]=/lucic
_SERVER[REDIRECT_URL]=/lucic
/home/magic/public_html/dbUpdate.php@16 :myDebugFunction
/home/magic/public_html/view.php@10 :updateViews
13:16:30 id:4a6c9d7eaf93e3.88114161
_SERVER[REQUEST_URI]=/lucic
_SERVER[REDIRECT_URL]=/lucic
/home/magic/public_html/dbUpdate.php@16 :myDebugFunction
/home/magic/public_html/view.php@10 :updateViews
13:16:31 id:4a6c9d7f846557.12618673
_SERVER[REQUEST_URI]=/lucic
_SERVER[REDIRECT_URL]=/lucic
/home/magic/public_html/dbUpdate.php@16 :myDebugFunction
/home/magic/public_html/view.php@10 :updateViews
更新 3
这是我的 htaccess 文件的内容,可能会导致问题。
# REWRITE DEFAULTS
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^www\.mysite\.com$ [NC]
RewriteRule ^(.*)$ http://mysite.com/$1 [R=301,L]
# /view.php?t=h5k6 externally to /h5k6
RewriteCond %{THE_REQUEST} ^GET\ /view\.php
RewriteCond %{QUERY_STRING} ^([^&]*&)*t=([^&]+)&?.*$
RewriteRule ^view\.php$ /%2? [L,R=301]
# /h5k6 internally to /view.php?t=h5k6
RewriteRule ^([0-9a-z]+)$ view.php?t=$1 [L]
【问题讨论】:
-
如果您使用其他浏览器(没有相同插件的浏览器)请求页面,是否也会发生这种情况?
-
是的,同样的事情发生在不同的浏览器上。在同一个浏览器上同一个浏览器!
-
你能发布你的完整剧本吗?不仅仅是eh函数片段