Php mysql查询选择一列,其中&引用;只返回一个结果
现在,我的第一个问题是关于堆栈溢出的Php mysql查询选择一列,其中&引用;只返回一个结果,php,mysql,Php,Mysql,现在,我的第一个问题是关于堆栈溢出的 $conn->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $sql = "SELECT nodeurl FROM ownership where userid = 'jgm'"; $stmt = $conn->prepare($sql); $stmt->execute(); $config = $stmt->fetch(); $xx =
$conn->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql = "SELECT nodeurl FROM ownership where userid = 'jgm'";
$stmt = $conn->prepare($sql);
$stmt->execute();
$config = $stmt->fetch();
$xx = sizeof($config);
echo var_dump($config);
mysql表如下所示:
id - nodeurl - userid
-----------------------
1 - url_a - jgm
2 - url_b - jgm
3 - url_c - seb
4 - url_d - jgm
如果我执行以下查询:“从所有权中选择nodeurl,其中userid='jgm'”
我希望得到的结果是数组url\u a、url\b和url\d
如果我为“seb”做这件事,我应该得到url\u c
我正在通过mysql客户端控制台运行查询,它运行得很好。当我通过php执行代码时,我只收到第一个结果(仅一行)
我完全无法理解这一点。当您的语句返回的行数超过1行时,您必须使用一个函数将所有数据检索到一个数组中。对我来说,我喜欢使用fetch_assoc
$conn->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql = "SELECT nodeurl FROM ownership where userid = 'jgm'";
$stmt = $conn->prepare($sql);
$result = $stmt->execute();
while($config = $result->fetch_assoc()){
$xx = sizeof($config);
echo var_dump($config);
}
我的数据库中有两个表
一个是“节点”
另一个是“节点配置”
节点如下所示:
实际上,这是我的代码
$sql = "SELECT nodeurl FROM ownership where userid = 'jgm'";
$stmt = $conn->prepare($sql);
$stmt->execute();
echo "<select>";
while($config = $stmt->fetch(PDO::FETCH_ASSOC)){
echo "<option value='".$config['nodeurl']."'>".$config['nodeurl']."</option>";
}
echo "</select>";
}
$sql=“从所有权中选择nodeurl,其中userid='jgm';
$stmt=$conn->prepare($sql);
$stmt->execute();
回声“;
而($config=$stmt->fetch(PDO::fetch_ASSOC)){
echo“$config['nodeurl']”;
}
回声“;
}
它确实创建了一个包含“jgm”所有url的下拉列表(当然,我会用一个变量替换它)。每个选项的值都可以是url本身,但我希望每个选项的标签都是与url对应的表“节点名称”中的名称,因为它们更易于用户选择。如果我的答案对您有帮助,请随意投票并选择为可接受的答案:)只返回一个结果。您可以使用来获得所有结果。