我在这里遇到了一个问题,我正在努力让我的脚本更好,但是我收到了这个错误:
Strict Standards: Non-static method DB::query() should not be called statically in C:\xampp\htdocs\Checkin\content\news_index.php on line 2
有些人已经告诉我,我使用的是静态和非静态的错误方法,但我真的没有得到这个错误。
错误是几行,2,3和9。
这是我的news_index.php:
<?php
$pickQuery = DB::Query("SELECT * FROM `cms_picks` WHERE `enabled` = 'true' ORDER BY `id` DESC LIMIT 6");
if(DB::num_rows($pickQuery) > 0){
?>
<div class="heading blue">Wat gebeurt er in <?php echo $hotelnaam; ?>? </div>
<div class="inner news_picks">
<?php
while($pickFetch = DB::fetch_array($pickQuery)){
?>
<div class="pick">
<a class="url" href="<?php echo $pickFetch['url']; ?>" ><div class="image" style="background: url('<?php echo htmlentities($pickFetch['image']); ?>') no-repeat; height: 60px; width: 160px; float: left; border-radius: 7px; border: 2px solid #ADADAD; "></div></a>
<div class="text" >
<a class="url" style="font-size: 15px;" href="<?php echo $pickFetch['url']; ?>"><b><?php echo htmlentities($pickFetch['title']); ?></b></a><br />
<?php echo htmlentities($pickFetch['desc']); ?>
</div>
<div style="clear: both;"></div>
</div>
<?php
}
?>
</div>
<?php } ?>
我希望有人能帮忙......
韦斯利
答案 0 :(得分:0)
我不确定您使用的是哪个库,但错误似乎很清楚:您不应该通过其类名调用DB::Query
,而应首先创建一个对象:
$db = new DB( /* whatever parameters the constructor takes, see documentation */ );
// ...
$pickQuery = $db->query("SELECT ... ");
答案 1 :(得分:0)
如果查看DB
类,则会看到函数Query
被定义为成员函数或实例方法。在类的实例上调用成员函数。在你的情况下,它将类似于:
$db = new DB();
$db->Query($sql);
但是,您静态调用Query
,即DB::Query($sql)
。不同之处在于,使用箭头->
运算符在对象上调用实例变量和方法,并使用类上的范围分辨率::
运算符访问静态函数和变量。
注意:此处使用的$sql
是您查询的占位符。
如果您的Query
函数在static function Query($sql)
类中被定义为DB
,那么您的代码就不会抱怨了。