使用Kohana从数据库回显最后一条记录

时间:2014-02-12 12:03:23

标签: php mysql sql kohana

我知道这是一个基本问题,但我无法弄清楚如何修改我的查询只显示插入该表的最后一条记录。如果我使用mysqli_query我会有类似的东西(不完美只是一个简单的例子):

$stmt = DB::query(Database::SELECT, 'SELECT `fname`,`lname`,`postcode`,`email` FROM `mytable` ORDER BY `id` DESC LIMIT 1;)
                VALUES (:fname, :lname, :postcode, :email)');   
$stmt->execute();
$result=mysqli_query($stmt);
echo "<table border='1'><tr><th>First Name</th></tr>";
while ($row = mysqli_fetch_assoc($result)){
echo "<tr>";
echo "<td>" . $row['fname'] . "</td>";
echo "</tr>";

在Kohana我目前有以下工作正常,除了它显示所有用户,我只想显示最后一个记录/用户插入,如何从第一个(mysqli)位代码实现查询到第二个(Kohana)

$results = DB::select('fname', 'lname', 'postcode', 'email')->from('mytable')->execute();
$users = $results->as_array();
foreach($users as $user)
{
echo 'First Name: '.$user['fname'];
echo 'Last Name: '.$user['lname'];
echo 'Postcode: '.$user['postcode'];
echo 'Email: '.$user['email'];
}

2 个答案:

答案 0 :(得分:1)

您错过了ORDER BYLIMIT,为什么不使用查询构建器的方法order_by()limit()来实现它们?

$results = DB::select('fname', 'lname', 'postcode', 'email')->from('mytable')
  ->order_by('id', 'DESC')->limit(1)->execute();

答案 1 :(得分:0)

或者如果使用ORM

ORM::factory('table')->order_by('id', 'DESC')->limit(1)->find();