- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
好吧,我是 php 和 mysql 的新手,我尝试构建一个网页点击计数器,但我的页面计数器未正确更新,并且收到下面列出的以下警告。
Warning: mysqli_query() expects at least 2 parameters, 1 given in
Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, boolean given in
下面是 PHP 代码。
<?php
$page = $_SERVER['SCRIPT_FILENAME'];
// Query member data from the database and ready it for display
$mysqli = new mysqli("localhost", "root", "", "sitename");
$dbc = mysqli_query($mysqli,"SELECT id page FROM mysql_counter_logs WHERE page = '$page'");
if (mysqli_num_rows($dbc) == 0) {
$mysqli = new mysqli("localhost", "root", "", "sitename");
$dbc = mysqli_query($mysqli,"INSERT INTO mysql_counter_logs (page) VALUES ('$page')");
mysqli_query($dbc);
} elseif (mysqli_num_rows($dbc) == 1) {
$mysqli = new mysqli("localhost", "root", "", "sitename");
$dbc = mysqli_query($mysqli,"UPDATE mysql_counter_logs SET hits = hits + 1 WHERE page = '$page'");
mysqli_query($dbc);
}
//Retreives the current count
$count = mysqli_fetch_row(mysqli_query($mysqli,"SELECT hits FROM mysql_counter_logs"));
if (!$dbc) {
// There was an error...do something about it here...
print mysqli_error();
}
//Displays the count on your site
print "$count[0]";
?>
最佳答案
代码摘录:
$mysqli = new mysqli("localhost", "root", "", "sitename");
$dbc = mysqli_query($mysqli,"INSERT INTO mysql_counter_logs (page) VALUES ('$page')");
mysqli_query($dbc);
首先根据mysqli_query的手册,当用作函数时:
mixed mysqli_query ( mysqli $link , string $query [, int $resultmode ] )
这意味着您必须将 $mysqli
变量作为第一个参数传递,并将查询作为第二个参数传递。
我不明白的是,为什么您在我复制粘贴的第三行上以这种方式使用mysqli_query
,而您在代码的其他部分中正确使用了它?
您确定要在此处使用该功能吗?
另外,了解在哪些行上收到这些错误消息可能会有所帮助;-)
检查你没有做任何其他“错误”的事情——比如“mysqli_query()需要至少2个参数,其中1个给定”
想了想:mysqli_query
如果出现错误,将返回 bool 值 false
。
在这种情况下,您不应该对 mysqli_query
的返回值调用 mysqli_num_rows
,因为它不是有效的 mysqli_result
—— 因此第二条错误消息。
您正在脚本末尾检查$dbc
,但早点检查它可能会很有趣 - 实际上,在每次调用mysql_query
之后>,我想说。
另外,作为旁注:您可能不需要多次实例化 mysqli 类:只需实例化一次,然后在脚本的其余部分使用 $mysqli
变量。
为了安全起见,并避免任何麻烦,您可能还想使用 mysqli_real_escape_string
在 $page
变量上,然后将其注入(inject)查询中。
哦,顺便说一句:您可能会对 INSERT ... ON DUPLICATE KEY UPDATE Syntax 感兴趣MySQL 允许使用;-)
(好吧,如果 page
是表的主键,至少......)
关于PHP 和 MySql hitcounter 问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1582929/
我经常访问网络上的某个页面来查看点击次数,但我的访问每次都会被计算在内,这会增加实际点击次数。有没有办法在不向点击计数器添加另一个点击的情况下访问该页面? 最佳答案 在这种情况下,命中计数器实现被破坏
好吧,我是 php 和 mysql 的新手,我尝试构建一个网页点击计数器,但我的页面计数器未正确更新,并且收到下面列出的以下警告。 Warning: mysqli_query() expects at
该文档仅涵盖了 Django-Hitcount 在基于类的 View 中的使用。 from hitcount.views import HitCountDetailView class PostCou
我正在尝试使用 LRU 缓存,如下所示 Java time-based map/cache with expiring keys 我的代码: import com.google.common.cach
我的页面上有社交媒体分享和点赞按钮。 Facebook 按钮获得的点击数存在问题。如果我在 Facebook 上“分享”页面,下次我刷新页面时,它会被计入“喜欢”。 stLight.opt
我是一名优秀的程序员,十分优秀!