php - LIMIT 在 MariaDB 中不起作用 - 尝试了很多东西
问题描述
$dbhost = "localhost";
$dbuser = "root";
$dbpass = "";
$dbname = "igscript";
$con = mysqli_connect($dbhost, $dbuser, $dbpass, $dbname);
$query = "SELECT * FROM lastsearches";
$result = mysqli_query($con, $query);
if(mysqli_connect_errno()) {
die("DB Error: " . mysqli_connect_error() . " ( " .mysqli_connect_errno() . ")");
}
while($row = mysqli_fetch_assoc($result)) {
$query = "SELECT * FROM lastsearches Order By data DESC LIMIT 1;";
echo '<center><p>'.$row["name"].'</p> </center><hr>';
if(!mysqli_query($con, $query)) {
die('Error : '.mysqli_error($con));
}
}
$result = mysqli_query($con, $query);
每当我使用 LIMIT 1 或 LIMIT 10 时;在 $query 处,它根本没有效果。仍然显示相同数量的行。正如我在互联网上看到的那样,我也尝试了 TOP 10 或 TOP(10),我得到了
错误:您的 SQL 语法有错误;检查与您的 MariaDB 服务器版本相对应的手册,以在第 1 行的“10 name FROM lastsearches Order By data DESC LIMIT 1”附近使用正确的语法
$query = "SELECT TOP 10 name FROM lastsearches Order By data DESC";
-> 这是查询;此外,第一个查询在 phpmyadmin,SQL 部分也能正常工作。
解决方案
您实际显示结果的查询是这个:
$query = "SELECT * FROM lastsearches";
$result = mysqli_query($con, $query);
如果要限制结果,则需要编辑该查询,即
$query = "SELECT * FROM lastsearches Order By data DESC LIMIT 1";
$result = mysqli_query($con, $query);
我不确定您在 while 循环中尝试使用查询来实现什么,但它在该循环内没有做任何事情,因此您可能可以将其删除。
推荐阅读
- sql-server - 将行复制到同一个表中,除了主键和自动递增列
- linux - 有什么方法可以使提交的 slurm 作业不被抢占?
- healthkit - 是否可以在 WatchOS 中构建默认的 ECG 类应用程序?
- sql - AutoMapper.AutoMapperMappingException:错误映射类型
- gitlab - GitLab 管道抛出错误“错误:无法找到或加载主类”
- javascript - 是否有更快的方法将数据对象键中的值复制到 javascript 中同一数据对象中的新键?
- mongodb - Mongo-Express 没有显示 Mongodb 服务器
- javascript - 如何在 D3 中的饼图中显示文本
- c# - C# 可搜索列表 - 替换 SQL 表
- python-3.x - 如何检查子进程的子进程是否已完成 Python