我只需要获取数据库的最新行并回显该行的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'];
?>
答案 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