我们先来看看堆叠溢出的第一个问题。
$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
如果我执行查询:"SELECT nodeurl FROM ownership where userid = 'jgm'"
我希望结果能够获得数组url_a,url_b和url_d
如果我为'seb'做,我应该回到url_c
我正在通过我的mysql客户端控制台运行查询,它运行正常。当我通过我的PHP执行代码时,我只收到第一个结果(仅一行)。
我完全坚持了。
答案 0 :(得分:1)
当您的语句返回超过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);
}
答案 1 :(得分:1)
我的数据库中有2个表 一个是节点" 其他是"节点配置"
节点是这样的: my tables
Actualy,这是我的代码
$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>";
}
它会创建一个由&#39; jgm&#39;所拥有的所有网址的下拉列表。 (我当然会用变量替换它)。每个选项值都可以作为url本身,但是我希望每个选项的标签都是表格中的名称&#34;节点名称&#34;这与url相对应,因为用户可以更轻松地选择它。