Php 用函数的结果填充下拉列表
要用函数的结果填充下拉列表,我执行了以下操作:Php 用函数的结果填充下拉列表,php,pdo,Php,Pdo,要用函数的结果填充下拉列表,我执行了以下操作: 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
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
C:\wamp\www\page.php,第59行
感谢您的帮助您的初始函数是正确的,只是$conn变量是在函数范围之外启动的。要解决此问题,请使用“全局”将其置于上下文中: 试试这个:
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);
}
}
注意sqlinjection@RonniSkansing我想我会用bindValue来逃避sql注入声音很好你解决问题了吗?@RonniSkansing yep: