要使用函数的rsult填充下拉列表,我执行了以下操作:
function tree($root) {
$n=0;
$result = $conn->prepare("SELECT id FROM personne WHERE emp_id='$root' ORDER BY id");
$result->execute();
while ($row = $result->fetch(PDO::FETC_ASSOC)) {
$n = $n+1;
echo "<option>".$row['id']."</option>";
tree($row['id'], $n+1);
}
}
但我收到了这个错误:
注意:未定义的变量:第59行的C:\ wamp \ www \ page.php中的conn
为了摆脱上述问题,我做了这个改变:
function tree($root, $connection) {
$n=0;
$result = $connection->prepare("SELECT id FROM personne WHERE emp_id='$root' ORDER BY id");
$result->execute();
while ($row = $result->fetch(PDO::FETC_ASSOC)) {
$n = $n+1;
echo "<option>".$row['id']."</option>";
tree($row['id'], $n+1);
}
}
现在,我正面临这个问题:
致命错误:在非对象中调用成员函数prepare() 第59行的C:\ wamp \ www \ page.php
感谢您的帮助
答案 0 :(得分:1)
您的初始功能是正确的,只是$conn
变量是在功能范围之外启动的。要解决此问题,请使用global
将其置于上下文中:
试试这个:
function tree($root) {
global $conn;
$n=0;
$result = $conn->prepare("SELECT id FROM personne WHERE emp_id='$root' ORDER BY id");
$result->execute();
while ($row = $result->fetch(PDO::FETC_ASSOC)) {
$n = $n+1;
echo "<option>".$row['id']."</option>";
tree($row['id'], $n+1);
}
}