php - 使用 PHP 查询 SQL DB 中的单个单元格
问题描述
如果您将我的问题标记为重复,请确保您链接到的问题不是特定于其他人的应用程序的示例。
----------------------
| Table |
----------------------
| ID | Name | Color |
----------------------
| 1 | Ae | Red |
| 2 | Be | Red |
| 3 | Ce | Red |
| 4 | De | Red |
----------------------
我的问题是,假设我想使用 PHP 进行 SQL 查询以仅从第一行中选择 ID 号。我怎么做?
这是我尝试过的:
php
$host = "localhost";
$name = "db";
$user = "root"
$pass = "password";
$connection = mysqli_connect($host, $user, $password) or die("Failed");
mysqli_select_db($connection, $name) or die("Failed");
$id = mysqli_query($connection, "SELECT id FROM db WHERE id=0");
$row = mysqli_fetch_assoc($id);
echo "$id";
为什么这不起作用?需要更改什么才能输出 1 且仅输出 1?请ELI5,SQL烧我的大脑..
解决方案
就 SQL 而言,您必须根据“顺序”定义“第一”,如下所示:
SELECT id FROM db ORDER BY id LIMIT 1
您要求按id
列对结果进行排序,默认为升序 (1, 2, 3, ...) 并使用LIMIT
子句将结果限制为一行。对于您要按ORDER BY id DESC
降序排列的最高值并取出第一个值。
在您的情况下应用它,您可以使用它bind_result
来捕获 ID 值:
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$conn = new mysqli($host, $user, $password) or die("Failed");
$conn->select_db($name);
$res = $conn->query("SELECT id FROM db ORDER BY id LIMIT 1");
// Declare your intention to capture the result into $id
$res->bind_result($id);
// Fetch the data which applies the binding
$res->fetch();
SQL 起初可能看起来令人困惑。如果您认为这就像编写程序代码(如 PHP),那是错误的思维方式。它是一种查询语言,它本身不像编程,而是关于声明你想要什么并让服务器弄清楚并将数据返回给你。
好消息是 SQL 已经存在了几十年并且有很好的文档记录,甚至是您在这里使用的 MySQL 方言。除了 MySQL 手册之外,还有无数关于数据库和 SQL 的理论和实践方面的书籍。如果它仍然令人困惑,您可能需要找到更好的介绍和参考。
推荐阅读
- c# - 几乎重复的单元测试
- apache-nifi - 循环属性值以在 Nifi 中执行 SQL
- python - 在 Python 中使用 OpenCV 旋转图像时指定背景颜色
- javascript - 如何使用jspdf打印下载pdf格式的多个highcharts内容
- ruby-on-rails - Rails 5.2 关联和表单
- reactjs - Semantic UI React - 使用远程内容填充下拉列表
- arrays - Array 的所有子集的算法
- javascript - HTML、Javascript网页自动登录
- reactjs - Uncaught TypeError: (0 , o.default) is not a function: 是什么原因造成的?
- markdown - Doxygen:指向头文件的降价链接在 html 输出中被破坏