我想制作一个简单的php访问计数器...我写这段代码
<?php
$Connect = mysql_connect('Localhost','root','');
$Database = mysql_select_db("myDatabaseName");
$CurrentVisit = mysql_query("SELECT visit FROM myWebsite");
$NewVisit = $CurrentVisit+1;
$UpdateField = mysql_query("UPDATE myWebsite SET visit = '$NewVisit'");
echo $NewVisit;
?>
当我执行此代码时,输出为“5”。为什么?错误在哪里?在我的数据库中,我创建了一个int(11)字段调用访问。我在localhost上运行这个脚本。
答案 0 :(得分:1)
您忘记了获取结果行。 mysql_query
函数返回结果资源,而不是行值。
您可以使用mysql_fetch_assoc
或mysql_fetch_array
功能。
$Connect = mysql_connect('Localhost','root','');
$Database = mysql_select_db("myDatabaseName");
$Result = mysql_query("SELECT visit FROM myWebsite");
$CurrentVisit = mysql_fetch_assoc($Result["visit"]);
$NewVisit = $CurrentVisit+1;
$UpdateField = mysql_query("UPDATE myWebsite SET visit = '$NewVisit'");
echo $NewVisit;
如果你的代码中不需要旧的计数器值(对于其他一些操作)并且你只需要增加数据库值,你就可以运行
Jelle Ferwerda建议UPDATE myWebsite SET visit = visit+1
查询。
答案 1 :(得分:0)
运行查询后,您必须运行类似mysql_fetch_array的内容。但是,您只需运行
即可更新数据库中的计数器UPDATE myWebsite SET visit = visit+1
假设您不需要显示该号码。这样可以节省您的查询。
更合乎逻辑的imhop只是使用谷歌分析?
答案 2 :(得分:0)
您错过了从结果集中获取结果。首先获取数据如下:
$CurrentVisit = mysql_fetch_array($Result['visit']);