在非对象更新量上调用成员函数execute()

时间:2011-06-02 00:42:23

标签: php

我最近制作了一个自定义网址缩短脚本,但我一直遇到问题。它使用此脚本跟踪URL的点击次数:

<?php
function curPageName() {
 return substr($_SERVER["SCRIPT_NAME"],strrpos($_SERVER["SCRIPT_NAME"],"/")+1);
}


$pagenam = $_SERVER["SCRIPT_NAME"];
$moo = pathinfo($pagenam,PATHINFO_DIRNAME);
$wof = str_ireplace("/urls/","",$moo);
$woof = str_ireplace("/","",$wof);
include("../../connect.php");
$statement = $db->prepare("SELECT clicks FROM url WHERE refer = '$woof'");
$statement->execute();
$result = $statement->fetchObject();
$clicks = $result->clicks;
$clicks++;
$statement = $db->prepare("UPDATE url SET clicks = '$clicks', date = NOW() WHERE refer = '$woof'");
$statement->execute();

?>

但是,每当点击一个URL时,我都会收到错误:

  

致命错误:调用成员函数   对非对象的执行()   /home/kgoco/public_html/ping.php上   第18行

非常感谢任何帮助。您可以在http://kgo.co看到该网站的运行情况 - 提前感谢您。

1 个答案:

答案 0 :(得分:0)

您的错误告诉您,如果execute()不是对象,则无法致电$statement
如果$statement不是对象,则代码的这一部分将返回FALSE

$statement = $db->prepare("SELECT clicks FROM url WHERE refer = '$woof'");

因此,在此行之后,您应键入以下内容:
var_dump($statement);
看看实际返回的是什么。