我该如何定义$ db?注意:未定义的变量:db

时间:2012-04-10 06:30:38

标签: php mysql ajax

但是因为我对php中的oop不太熟悉。我不确定我需要将$ db变量定义为,以便正确查询我的数据库。他们是一种可以编辑此代码的方式,因此它避开$ db并使用不同的方法,代码使用ajax来加载更多帖子。错误发生在第24行

<html> 
<head> 
<script> 
$(document).ready(function(){ 
$("#loadmorebutton").click(function (){ 
    $('#loadmorebutton').html(''); 
$.ajax({ 
    url: "loadmore.php?lastid=" + $(".postitem:last").attr("id"), 
    success: function(html){ 
        if(html){ 
            $("ul#posts").append(html); 
            $('#loadmorebutton').html('Load More'); 
        }else{ 
            $('#loadmorebutton').replaceWith('No more posts to show.'); 
        } 
    } 
}); 
}); 
}); 
</script> 
</head> 
<body> 
<?php 
if($posts = $db->get_results("SELECT id,text FROM posts ORDER BY id DESC LIMIT 10")) { 
echo '<ul id="posts">'; 
foreach($posts as $post) { 
    echo '<li class="postitem" id="'.$post->id.'">'.$post->text.'</li>'; 
} 
echo '</ul>'; 
} 
?> 
<button id="loadmorebutton">Load More</button> 
</body> 
</html>

加载更多

<?php 
if($_GET['lastid']){ 
if($posts = $db->get_results("SELECT id,text FROM posts WHERE id < ".$db-    >escape($_GET['lastid'])." ORDER BY id DESC LIMIT 10")) { 
    foreach($posts as $post) { 
        echo '<li class="postitem" id="'.$post->id.'">'.$post->text.'</li>'; 
    } 
} 
} 
?>

3 个答案:

答案 0 :(得分:1)

如果你不熟悉面向对象的PHP,但是你需要构建你的对象,这将变得很复杂。例如,MySQLi类constructor获取用户,密码,数据库等,然后知道它应该连接到哪里。

在使用$ db-&gt; get_results之类的东西之前,您需要构建数据库对象。现在我不认识get_results函数,所以我认为它是一个自定义构建的DB类。如果您想知道该怎么做,您应该看到该特定类的文档。

答案 1 :(得分:0)

代码似乎很复杂,但如果你想写那样的$db->get_results。您必须在使用主机名,用户,数据库和密码设置数据库连接的构造函数中创建Database类。

之后,在该类中定义方法 get_result ,然后创建该类的对象,如$dg=new Database();,然后您可以使用$db->get_result

答案 2 :(得分:0)

而不是教你 - 这里的答案需要很长时间,请阅读PHP的OO页面:http://php.net/manual/en/language.oop5.php

这不会花费您很长时间,并且会帮助您了解基础知识,并帮助您解决使用OO代码时遇到的任何问题。