【发布时间】:2019-02-19 17:57:43
【问题描述】:
我正在尝试遍历数据库中表的每一行,然后在特定行上获取特定列的值。这可能吗?我已经做了几个谷歌搜索,但没有什么真正具体的。我尝试使用 mysqli_fetch_array() 函数,但是当我这样做时,我得到了列的结果。我想针对每一行。到目前为止,我拥有的代码使我成为“nid”列。那不是我想要的。我想遍历每一行。
<?php
$serverName = "localhost";
$username = "user1";
$password = "sp@99#1";
$databaseName = "developer_site";
// Connection
$connection = new mysqli($serverName, $username, $password, $databaseName);
// Check Connection
if ($connection->connect_error) {
die("Connection failed:" . $connection->connect_error);
} // line ends if statement
$queryNodeRevision = "SELECT nid FROM node_revision";
// line above creates variable $queryNodeRevision > selects column "nid" from table "node_revision"
$results = mysqli_query($connection, $queryNodeRevision) or die("Bad Query: $results");
while ($row = mysqli_fetch_array($results)) {
echo "NID: ";
echo $row['nid'];
echo "<br/>";
}
?>
【问题讨论】:
-
注意:
mysqli的面向对象接口明显不那么冗长,使代码更易于阅读和审核,并且不容易与过时的mysql_query接口混淆。在您对程序风格投入过多之前,值得转换一下。示例:$db = new mysqli(…)和$db->prepare("…")过程接口是 PHP 4 时代的产物,当时引入了mysqliAPI,理想情况下不应在新代码中使用。 -
请记住,the
mysqlidocumentation 充满了例子。 -
我认为您需要查看 SQL 手册,特别是 WHERE 子句。像顺序文件一样遍历数据库表是不正常的......因为它们不是
-
当你在那里的时候也检查一下 SELECT !您一次可以选择多个列,即
SELECT nid,nad,nod FROM node_revision WHERE nad = 'somevalue',然后您只会获得您真正想要查看的行和您想要了解的列 -
您尝试完成的任务使用了错误的工具。如果您正确询问,任何 SQL 引擎都可以为您提供所需的记录。当查询本身可以更有效地过滤查询结果时,不应使用外部代码来过滤查询结果。