获取最新的数据库行和echo id

时间:2015-11-21 01:43:43

标签: php mysql

我只需要获取数据库的最新行并回显该行的id。我似乎无法让它发挥作用。当我尝试加载php页面时,我只得到一个“内部服务器错误”。

<?php 
include ("connection.php");
$query = mysql_query('SELECT id FROM timestamp ORDER BY id DESC LIMIT 1');
        $result = mysqli_query($link, $query);
        $row = mysqli_fetch_array($result);
        echo $row['id'];
?>

5 个答案:

答案 0 :(得分:5)

首先,您使用两种不同的MySQL函数进行查询:

$query = mysql_query('SELECT id FROM timestamp ORDER BY id DESC LIMIT 1');
         ^^^^^^^^^^^
        $result = mysqli_query($link, $query);
                  ^^^^^^^^^^^^

我们不知道你用什么MySQL API连接。

不同的MySQL API不会混用。您需要使用从连接到查询的相同内容。

从代码中删除mysql_query,不需要括号。

$query = 'SELECT id FROM timestamp ORDER BY id DESC LIMIT 1';
        $result = mysqli_query($link, $query);

并假设(成功)mysqli_连接。

如果您的查询中有任何错误,请将or die(mysqli_error($link))添加到mysqli_query()

其他参考资料:

您还可以使用mysqli_insert_id()

  

返回上次查询中使用的自动生成的ID

脚注:

有人询问timestamp。这不是MySQL“保留”字,而是“关键字”。这些是两种不同的动物。

旁边没有(R) TIMESTAMP,而不是说TINYBLOB (R)

因此,不需要将ticks包裹在其表名中。

答案 1 :(得分:1)

为什么使用&#34; mysql&#34;? mysql_函数现已弃用。你应该使用&#34; mysqli&#34;或PDO mysqli支持相同的功能,如&#34; mysql&#34;

示例如何使用mysqli

<?php
$con=mysqli_connect("localhost","my_user","my_password","my_db");
// Check connection
if (mysqli_connect_errno())
  {
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
  }

mysqli_query($con,"INSERT INTO Persons (FirstName,LastName,Age)
VALUES ('Glenn','Quagmire',33)");

// Print auto-generated id
echo "New record has id: " . **mysqli_insert_id($con)**;

mysqli_close($con);
?>

mysqli_insert_id($ con)使用此功能,您可以从数据库中获取最后一个插入的ID,并使用此ID可以获得一行。 但是如果你仍然需要使用mysql那么你可以使用这个函数 mysql_insert_id(); 你可以获得最后插入的行id,参见下面的例子

<?php
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
    die('Could not connect: ' . mysql_error());
}
mysql_select_db('mydb');

// it print last inserted id 
printf("Last inserted record has id %d\n", mysql_insert_id());
?>

接受此http://php.net/manual/en/function.mysql-insert-id.php

并使用它也是获取最后插入的行

答案 2 :(得分:0)

OOP风格 -

<?php 
include ("connection.php");
$query = new mysqli_query('SELECT id FROM timestamp ORDER BY id DESC LIMIT 1');
    $result = new mysqli_query($link, $query);
     $row = new mysqli_fetch_array($result);
    echo $row['id'];
   ?>

答案 3 :(得分:0)

尝试使用此代码。你必须使用“mysqli_query”而不是“mysql_query。”

<?php 
include ("connection.php"); //contains mysqli_connect information (the $mysqli variable)

$query = mysqli_query('SELECT id FROM timestamp ORDER BY id DESC LIMIT 1');
        $result = mysqli_query($mysqli, $query);
        $row = mysqli_fetch_array($result);
        echo $row['id'];
?>

感谢。

答案 4 :(得分:-1)

使用以下查询

select * from (SELECT id FROM timestamp ORDER BY id DESC) abc limit 1